Merge remote-tracking branch 'origin/develop'

This commit is contained in:
nobody 2022-07-24 09:23:05 +02:00
commit bebd2f409f
No known key found for this signature in database
GPG Key ID: 8F6DE3D614FCFD7A
349 changed files with 1249 additions and 953 deletions

View File

@ -1,6 +1,6 @@
# LocalCDN
[![Translate](https://www.localcdn.org/badges/translation.svg)](https://hosted.weblate.org/projects/localcdn/localcdn/) [![CDNs](https://www.localcdn.org/badges/cdn.svg)](https://codeberg.org/nobody/LocalCDN/src/branch/main/core/mappings.js) [![Frameworks](https://www.localcdn.org/badges/frameworks.svg)](https://codeberg.org/nobody/LocalCDN/src/branch/main/resources/) [![Firefox Add-on](https://www.localcdn.org/badges/amo-version.svg)](https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/) [![Chrome Add-on](https://www.localcdn.org/badges/chrome-version.svg)](https://chrome.google.com/webstore/detail/localcdn/njdfdhgcmkocbgbhcioffdbicglldapd/)
[![Translate](https://www.localcdn.org/badges/translation.svg)](https://hosted.weblate.org/projects/localcdn/localcdn/) [![CDNs](https://www.localcdn.org/badges/cdn.svg)](https://codeberg.org/nobody/LocalCDN/src/branch/main/core/mappings.js) [![Frameworks](https://www.localcdn.org/badges/frameworks.svg)](https://codeberg.org/nobody/LocalCDN/src/branch/main/resources/) [![Firefox Add-on](https://www.localcdn.org/badges/amo-version.svg)](https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/) [![Chrome Add-on](https://www.localcdn.org/badges/chrome-version.svg)](https://chrome.google.com/webstore/detail/localcdn/njdfdhgcmkocbgbhcioffdbicglldapd/) [![Buy Me a Coffee](https://www.localcdn.org/badges/buymeacoffee.svg)](https://www.buymeacoffee.com/LocalCDN) [![opencollective](https://www.localcdn.org/badges/opencollective.svg)](https://opencollective.com/LocalCDN)
LocalCDN is a fork of Decentraleyes and a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported resources locally, and injects them into the environment. All of this happens automatically, so no prior configuration is required. Feel free to use the following [testing utility](https://www.localcdn.org/test/) to find out if you are properly protected. For more information, please read the [tutorial](https://www.localcdn.org/tutorial) or the [Wiki](https://codeberg.org/nobody/LocalCDN/wiki). You can also [download](https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/) the extension directly from Mozilla and just try it.
@ -100,6 +100,8 @@ LocalCDN is free and open-source. If you like LocalCDN you can support continued
* Ether: `0x2df49c1186f8b615c2059f29c3ed7f9f86d49552`
* Monero: `46j26ggSZNT9rN7VeFYXp2PsKEMyJSSYneBVKXY4xeemdfZfCpNg6tQEXQZpWiTTuGX3SbnDPwuh3167cCoYSrqN72H9jPk`
[<img src="https://codeberg.org/nobody/LocalCDN/raw/branch/develop/pages/images/buymeacoffee.png" alt="Buy me a coffee" width="214"/>](https://www.buymeacoffee.com/LocalCDN) [<img src="https://codeberg.org/nobody/LocalCDN/raw/branch/develop/pages/images/opencollective.png" alt="Open Collective" width="214"/>](https://opencollective.com/LocalCDN)
## License
[MPL-2.0](https://www.mozilla.org/MPL/2.0).

View File

@ -131,9 +131,9 @@ https://cdn.embed.ly/player-0.1.0.min.js
https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js
https://cdnjs.cloudflare.com/ajax/libs/ajax-bootstrap-select/1.4.5/js/ajax-bootstrap-select.min.js
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/3.35.1/algoliasearch.min.js
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/4.13.1/algoliasearch.umd.min.js
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/4.14.1/algoliasearch.umd.min.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/2.8.2/alpine.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.10.2/cdn.min.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.10.3/cdn.min.js
https://cdnjs.cloudflare.com/ajax/libs/angucomplete-alt/3.0.0/angucomplete-alt.min.js
https://cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-colorpicker/3.0.32/css/colorpicker.min.css
https://cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-colorpicker/3.0.32/js/bootstrap-colorpicker-module.min.js
@ -278,8 +278,8 @@ https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootst
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootstrap-datepicker.zh-TW.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-daterangepicker/2.1.27/daterangepicker.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-daterangepicker/3.1/daterangepicker.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.8.3/font/bootstrap-icons.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.8.3/font/fonts/bootstrap-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.9.1/font/bootstrap-icons.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.9.1/font/fonts/bootstrap-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.16/js/bootstrap-multiselect.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/1.1.1/js/bootstrap-multiselect.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.18/css/bootstrap-select.min.css
@ -319,12 +319,11 @@ https://cdnjs.cloudflare.com/ajax/libs/d3/5.16.0/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/6.7.0/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/7.6.1/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3-legend/2.25.6/d3-legend.min.js
https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.3/dayjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.4/dayjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/dexie/3.2.2/dexie.min.js
https://cdnjs.cloudflare.com/ajax/libs/docsearch.js/2.6.3/docsearch.min.css
https://cdnjs.cloudflare.com/ajax/libs/docsearch.js/2.6.3/docsearch.min.js
https://cdnjs.cloudflare.com/ajax/libs/docsify/4.12.2/docsify.min.js
https://cdnjs.cloudflare.com/ajax/libs/dojo/1.17.2/dojo.min.js
https://cdnjs.cloudflare.com/ajax/libs/drawer/3.2.2/css/drawer.min.css
https://cdnjs.cloudflare.com/ajax/libs/drawer/3.2.2/js/drawer.min.js
https://cdnjs.cloudflare.com/ajax/libs/dygraph/1.1.1/dygraph-combined.js
@ -415,8 +414,8 @@ https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.2.0/css/fork-awesome.min.c
https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.2.0/fonts/forkawesome-webfont.woff2
https://cdnjs.cloudflare.com/ajax/libs/foundation/5.5.3/css/foundation.min.css
https://cdnjs.cloudflare.com/ajax/libs/foundation/5.5.3/js/foundation.min.js
https://cdnjs.cloudflare.com/ajax/libs/foundation/6.7.4/css/foundation.min.css
https://cdnjs.cloudflare.com/ajax/libs/foundation/6.7.4/js/foundation.min.js
https://cdnjs.cloudflare.com/ajax/libs/foundation/6.7.5/css/foundation.min.css
https://cdnjs.cloudflare.com/ajax/libs/foundation/6.7.5/js/foundation.min.js
https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.min.css
https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/granim/2.0.0/granim.min.js
@ -761,264 +760,264 @@ https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/vs.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/xcode.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/xt256.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/zenburn.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/1c.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/abnf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/accesslog.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/actionscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ada.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/angelscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/apache.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/applescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/arcade.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/arduino.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/armasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/asciidoc.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/aspectj.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/autohotkey.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/autoit.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/avrasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/awk.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/axapta.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/bash.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/basic.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/bnf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/brainfuck.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/cal.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/capnproto.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ceylon.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/clean.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/clojure.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/clojure-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/cmake.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/c.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/coffeescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/coq.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/cos.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/cpp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/crmsh.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/crystal.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/csharp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/csp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/css.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/dart.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/delphi.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/diff.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/django.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/d.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/dns.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/dockerfile.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/dos.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/dsconfig.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/dts.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/dust.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ebnf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/elixir.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/elm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/erb.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/erlang.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/erlang-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/excel.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/fix.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/flix.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/fortran.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/fsharp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/gams.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/gauss.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/gcode.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/gherkin.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/glsl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/gml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/golo.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/go.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/gradle.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/groovy.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/haml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/handlebars.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/haskell.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/haxe.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/hsp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/http.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/hy.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/inform7.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ini.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/irpf90.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/isbl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/java.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/javascript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/jboss-cli.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/json.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/kotlin.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/lasso.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/latex.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ldif.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/leaf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/less.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/lisp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/livecodeserver.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/livescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/llvm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/lsl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/lua.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/makefile.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/markdown.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/mathematica.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/matlab.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/maxima.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/mel.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/mercury.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/mipsasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/mizar.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/mojolicious.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/monkey.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/moonscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/n1ql.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/nestedtext.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/nginx.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/nim.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/nix.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/node-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/nsis.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/objectivec.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ocaml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/openscad.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/oxygene.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/parser3.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/perl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/pf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/pgsql.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/php.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/php-template.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/plaintext.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/pony.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/powershell.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/processing.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/profile.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/prolog.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/properties.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/protobuf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/puppet.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/purebasic.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/python.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/python-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/q.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/qml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/reasonml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/rib.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/r.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/roboconf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/routeros.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/rsl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ruby.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/ruleslanguage.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/rust.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/sas.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/scala.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/scheme.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/scilab.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/scss.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/shell.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/smali.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/smalltalk.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/sml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/sqf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/sql.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/stan.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/stata.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/step21.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/stylus.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/subunit.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/swift.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/taggerscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/tap.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/tcl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/thrift.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/tp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/twig.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/typescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/vala.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/vbnet.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/vbscript-html.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/vbscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/verilog.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/vhdl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/vim.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/wasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/wren.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/x86asm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/xl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/xml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/xquery.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/yaml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/zephir.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/a11y-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/a11y-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/agate.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/androidstudio.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/an-old-hope.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/arduino-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/arta.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/ascetic.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/atom-one-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/atom-one-dark-reasonable.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/atom-one-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/brown-paper.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/codepen-embed.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/color-brewer.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/default.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/devibeans.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/docco.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/far.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/foundation.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/github-dark-dimmed.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/github-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/github.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/gml.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/googlecode.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/gradient-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/gradient-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/grayscale.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/hybrid.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/idea.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/ir-black.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/isbl-editor-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/isbl-editor-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/kimbie-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/kimbie-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/lightfair.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/lioshi.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/magula.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/mono-blue.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/monokai.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/monokai-sublime.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/night-owl.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/nnfx-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/nnfx-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/nord.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/obsidian.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/paraiso-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/paraiso-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/pojoaque.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/purebasic.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/qtcreator-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/qtcreator-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/rainbow.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/routeros.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/school-book.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/shades-of-purple.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/srcery.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/stackoverflow-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/stackoverflow-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/sunburst.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/tomorrow-night-blue.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/tomorrow-night-bright.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/vs2015.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/vs.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/xcode.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/xt256.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/1c.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/abnf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/accesslog.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/actionscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ada.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/angelscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/apache.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/applescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/arcade.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/arduino.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/armasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/asciidoc.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/aspectj.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/autohotkey.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/autoit.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/avrasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/awk.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/axapta.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/bash.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/basic.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/bnf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/brainfuck.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/cal.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/capnproto.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ceylon.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/clean.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/clojure.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/clojure-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/cmake.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/c.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/coffeescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/coq.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/cos.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/cpp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/crmsh.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/crystal.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/csharp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/csp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/css.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/dart.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/delphi.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/diff.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/django.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/d.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/dns.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/dockerfile.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/dos.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/dsconfig.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/dts.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/dust.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ebnf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/elixir.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/elm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/erb.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/erlang.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/erlang-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/excel.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/fix.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/flix.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/fortran.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/fsharp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/gams.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/gauss.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/gcode.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/gherkin.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/glsl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/gml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/golo.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/go.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/gradle.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/groovy.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/haml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/handlebars.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/haskell.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/haxe.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/hsp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/http.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/hy.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/inform7.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ini.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/irpf90.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/isbl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/java.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/javascript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/jboss-cli.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/json.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/julia.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/julia-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/kotlin.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/lasso.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/latex.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ldif.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/leaf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/less.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/lisp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/livecodeserver.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/livescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/llvm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/lsl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/lua.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/makefile.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/markdown.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/mathematica.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/matlab.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/maxima.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/mel.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/mercury.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/mipsasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/mizar.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/mojolicious.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/monkey.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/moonscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/n1ql.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/nestedtext.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/nginx.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/nim.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/nix.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/node-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/nsis.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/objectivec.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ocaml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/openscad.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/oxygene.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/parser3.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/perl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/pf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/pgsql.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/php.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/php-template.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/plaintext.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/pony.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/powershell.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/processing.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/profile.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/prolog.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/properties.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/protobuf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/puppet.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/purebasic.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/python.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/python-repl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/q.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/qml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/reasonml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/rib.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/r.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/roboconf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/routeros.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/rsl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ruby.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/ruleslanguage.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/rust.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/sas.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/scala.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/scheme.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/scilab.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/scss.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/shell.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/smali.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/smalltalk.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/sml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/sqf.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/sql.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/stan.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/stata.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/step21.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/stylus.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/subunit.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/swift.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/taggerscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/tap.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/tcl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/thrift.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/tp.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/twig.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/typescript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/vala.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/vbnet.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/vbscript-html.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/vbscript.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/verilog.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/vhdl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/vim.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/wasm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/wren.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/x86asm.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/xl.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/xml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/xquery.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/yaml.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/zephir.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/a11y-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/a11y-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/agate.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/androidstudio.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/an-old-hope.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/arduino-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/arta.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/ascetic.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/atom-one-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/atom-one-dark-reasonable.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/atom-one-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/brown-paper.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/codepen-embed.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/color-brewer.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/default.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/devibeans.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/docco.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/far.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/foundation.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/github-dark-dimmed.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/github-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/github.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/gml.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/googlecode.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/gradient-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/gradient-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/grayscale.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/hybrid.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/idea.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/ir-black.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/isbl-editor-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/isbl-editor-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/kimbie-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/kimbie-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/lightfair.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/lioshi.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/magula.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/mono-blue.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/monokai.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/monokai-sublime.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/night-owl.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/nnfx-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/nnfx-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/nord.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/obsidian.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/paraiso-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/paraiso-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/pojoaque.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/purebasic.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/qtcreator-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/qtcreator-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/rainbow.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/routeros.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/school-book.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/shades-of-purple.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/srcery.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/stackoverflow-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/stackoverflow-light.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/sunburst.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/tomorrow-night-blue.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/tomorrow-night-bright.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/vs2015.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/vs.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/xcode.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/xt256.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/highlight.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/languages/apache.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/languages/bash.min.js
@ -1154,7 +1153,7 @@ https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.14.17/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.5/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hogan.js/3.0.2/hogan.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/3.7.0/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/4.43.0/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/4.43.1/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/iScroll/5.2.0/iscroll.min.js
https://cdnjs.cloudflare.com/ajax/libs/izimodal/1.6.1/js/iziModal.min.js
https://cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/css/jasny-bootstrap.min.css
@ -1216,11 +1215,15 @@ https://cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min
https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.2/jquery.matchHeight-min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.4.1/jquery-migrate.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.0/jquery-migrate.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.3.2/jquery.mobile.min.css
https://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.3.2/jquery.mobile.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.4.5/jquery.mobile.min.css
https://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.4.5/jquery.mobile.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.2/jquery.modal.min.css
https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.2/jquery.modal.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery.scrollbar/0.2.11/jquery.scrollbar.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/2.1.3/jquery.scrollTo.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/js/jquery.tablesorter.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-timeago/1.6.7/jquery.timeago.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-tiny-pubsub/0.7.0/ba-tiny-pubsub.min.js
@ -1230,6 +1233,7 @@ https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js
https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.8.24/themes/base/minified/jquery-ui.min.css
https://cdnjs.cloudflare.com/ajax/libs/jquery-ujs/1.2.3/rails.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.12/jquery.validate.unobtrusive.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/4.0.0/jquery.validate.unobtrusive.min.js
https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.2.1/js.cookie.min.js
https://cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.1/js.cookie.min.js
https://cdnjs.cloudflare.com/ajax/libs/jScrollPane/2.2.2/script/jquery.jscrollpane.min.js
@ -1242,7 +1246,7 @@ https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.8.0/leaflet.css
https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.8.0/leaflet.js
https://cdnjs.cloudflare.com/ajax/libs/Leaflet.EasyButton/2.4.0/easy-button.min.js
https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/1.5.3/leaflet.markercluster.js
https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.10.7/libphonenumber-js.min.js
https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.10.9/libphonenumber-js.min.js
https://cdnjs.cloudflare.com/ajax/libs/libsodium-wrappers/0.5.4/sodium.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.3/js/lightbox.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightcase/2.5.0/css/lightcase.min.css
@ -1339,8 +1343,8 @@ https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.20.0/css/mdb.min.css
https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.20.0/js/mdb.min.js
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.11.0/mdb.min.css
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.11.0/mdb.min.js
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.2.0/mdb.min.css
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.2.0/mdb.min.js
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.3.0/mdb.min.css
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.3.0/mdb.min.js
https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/css/modaal.min.css
https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/js/modaal.min.js
https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js
@ -1363,8 +1367,8 @@ https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.green
https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js
https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js
https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.10.2/p5.min.js
https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.1/addons/p5.sound.min.js
https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.1/p5.min.js
https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.2/addons/p5.sound.min.js
https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.2/p5.min.js
https://cdnjs.cloudflare.com/ajax/libs/page.js/1.11.6/page.js
https://cdnjs.cloudflare.com/ajax/libs/paginationjs/2.1.5/pagination.css
https://cdnjs.cloudflare.com/ajax/libs/paginationjs/2.1.5/pagination.min.js
@ -1726,8 +1730,8 @@ https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/fonts/glyphicons-
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/js/bootstrap.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.3/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.3/js/bootstrap.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.2.0/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.2.0/js/bootstrap.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/twix.js/0.3.0/twix.min.js
https://cdnjs.cloudflare.com/ajax/libs/twix.js/1.3.0/twix.min.js
https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.4/underscore-min.js
@ -1809,15 +1813,15 @@ https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/styles.css
https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~components~initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~sentry.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/autocomplete.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/bundle.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/polyfill.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/raw.css
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/recommendation.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/search.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/sentry.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.50/dist/styles.css
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/autocomplete.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/bundle.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/polyfill.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/raw.css
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/recommendation.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/search.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/sentry.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/styles.css
https://cdn.jsdelivr.net/npm/instantsearch.css@7.4.5/themes/algolia-min.css
https://cdn.jsdelivr.net/npm/leaflet.featuregroup.subgroup@1.0.2/dist/leaflet.featuregroup.subgroup.js
https://cdn.jsdelivr.net/npm/ngx-bootstrap@6.2.0/datepicker/bs-datepicker.css
@ -1836,10 +1840,10 @@ https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@7.4.1/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@7.4.1/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@8.3.0/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@8.3.0/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@8.3.1/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@8.3.1/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/urlize.js/urlize.js
https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.8.2/dist/lazyload.min.js
https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.8.3/dist/lazyload.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@1.6.0/dist/videojs-seek-buttons.css
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@1.6.0/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@2.2.1/dist/videojs-seek-buttons.css
@ -1848,11 +1852,11 @@ https://cdn.jsdelivr.net/npm/vue@1.0.28/dist/vue.min.js
https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js
https://cdn.jsdelivr.net/npm/vue-match-media@1.0.3/dist/index.min.js
https://code.createjs.com/1.0.0/createjs.min.js
https://fonts.gstatic.com/s/materialiconsoutlined/v106/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2
https://fonts.gstatic.com/s/materialiconsround/v105/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2
https://fonts.gstatic.com/s/materialiconssharp/v106/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2
https://fonts.gstatic.com/s/materialiconstwotone/v109/hESh6WRmNCxEqUmNyh3JDeGxjVVyMg4tHGctNCu0.woff2
https://fonts.gstatic.com/s/materialicons/v134/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2
https://fonts.gstatic.com/s/materialiconsoutlined/v107/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2
https://fonts.gstatic.com/s/materialiconsround/v106/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2
https://fonts.gstatic.com/s/materialiconssharp/v107/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2
https://fonts.gstatic.com/s/materialiconstwotone/v110/hESh6WRmNCxEqUmNyh3JDeGxjVVyMg4tHGctNCu0.woff2
https://fonts.gstatic.com/s/materialicons/v135/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2
https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css
https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js
https://raw.githubusercontent.com/jquery-validation/jquery-validation/1.19.5/dist/jquery.validate.min.js

View File

@ -1,10 +1,10 @@
{
"extensionDescription": {
"message": "Bảo vệ bạn khỏi sự theo dõi bằng các CDN (Mạng phân phối nội dung) bằng cách chuyển hướng về tài nguyên có sẵn.",
"message": "Bảo vệ bạn khỏi sự theo dõi bằng các CDN (viết tắt của từ tiếng Anh \"Content Delivery Networks\", tiếng Việt nghĩa là \"Mạng phân phối nội dung\") bằng cách chuyển hướng về các tài nguyên có sẵn.",
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
"message": "Số lượng mạng phân phối nội dung có sẵn được sử dụng từ khi cài đặt.",
"message": "Số lượng mạng phân phối nội dung nội địa được sử dụng kể từ khi lúc cài đặt.",
"description": "Amount injected description."
},
"optionsTitle": {
@ -16,7 +16,7 @@
"description": "Show icon badge title"
},
"showIconBadgeDescription": {
"message": "Hiện số lần đã sử dụng tài nguyên có sẵn trên biểu tượng của chương trình mở rộng.",
"message": "Hiện số lần đã sử dụng tài nguyên có sẵn trên biểu tượng của tiện ích mở rộng.",
"description": "Show icon badge description."
},
"blockMissingTitle": {
@ -28,11 +28,11 @@
"description": "Block requests for missing resources description."
},
"disablePrefetchTitle": {
"message": "Vô hiệu hoá nạp trước đường dẫn",
"message": "Vô hiệu hoá nạp trước đường liên kết",
"description": "Disable prefetch title"
},
"disablePrefetchDescription": {
"message": "Ngăn những yêu cầu bị cấm để không bị lộ ra cho các mạng phân phối.",
"message": "Ngăn những yêu cầu bị cấm không bị lộ ra cho các mạng phân phối.",
"description": "Disable prefetch description."
},
"stripMetadataTitle": {
@ -40,7 +40,7 @@
"description": "Strip metadata title"
},
"stripMetadataDescription": {
"message": "Xoá bỏ dữ liệu nhạy cảm từ những yêu cầu tới mạng phân phối nội dung được cho phép để tăng cường bảo mật.",
"message": "Xoá bỏ dữ liệu nhạy cảm từ những yêu cầu tới mạng phân phối nội dung được cho phép để tăng cường riêng tư.",
"description": "Strip metadata description."
},
"allowlistedDomainsTitle": {
@ -56,11 +56,11 @@
"description": "Advanced label"
},
"generateRuleSetTitle": {
"message": "Tạo luật cho trình chặn quảng cáo của bạn",
"message": "Tạo quy luật cho trình chặn quảng cáo của bạn",
"description": "Generate rule sets for your adblocker"
},
"generateRuleSetDescription": {
"message": "Trong trường hợp bạn sử dụng trình chặn quảng cáo thì có thể tạo ra luật ở đây. Bạn phải thêm những luật này vào trình chặn quảng cáo bằng tay.",
"message": "Trong trường hợp bạn sử dụng trình chặn quảng cáo thì có thể tạo các quy luật ở đây. Bạn phải thêm những quy luật này vào trình chặn quảng cáo một cách thủ công.",
"description": "In case you are using an adblocker you can generate the rules here. You have to add these rules manually in your adblocker."
},
"lastUpdate": {
@ -72,11 +72,11 @@
"description": "Text of button to copy ruleset"
},
"loggingTitle": {
"message": "Kích hoạt ghi chép",
"message": "Kích hoạt ghi chép nhật ký",
"description": "Enable logging"
},
"loggingDescription": {
"message": "Bạn có thể mở bản ghi chép từ biểu tượng trong trình đơn. Bản ghi chép sẽ bị xoá khi bạn đóng trình duyệt hoặc tắt ghi chép.",
"message": "Bạn có thể mở nhật ký từ biểu tượng trong trình đơn. Nhật ký sẽ bị xoá khi bạn đóng trình duyệt hoặc tắt ghi chép nhật ký.",
"description": "You can open the log with the icon in the menu. The log will be deleted when you close the browser or disable logging."
},
"featureBreaksWebsitesDescription": {
@ -364,23 +364,23 @@
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
"message": "Quy tắc có hữu ích",
"message": "Những quy luật hữu ích",
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
"message": "Mặc định/Easy",
"message": "Mặc định/Dễ dàng (Easy)",
"description": "Default/Easy"
},
"helpRuleGeneratorUblockTableMedium": {
"message": "Medium",
"message": "Vừa (Medium)",
"description": "Medium"
},
"helpRuleGeneratorUblockTableHard": {
"message": "Hard",
"message": "Nghiêm ngặt (Hard)",
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "Có hai lý do có thể xảy ra: Hoặc do khuôn khổ/thư viện được yêu cầu nhưng LocalCDN không (chưa) phân phối hoặc do SOP. SOP (Điều khoản đồng nguồn) là một cơ chế bảo mật quyết định dữ liệu nào mà trình duyệt được phép tải. Nó giúp cô lập các tài liệu độc hại, từ đó làm giảm thiểu các vectơ tấn công có thể xảy ra. Điều khoản này ngăn chặn các trình duyệt tải các khuôn khổ bên ngoài của LocalCDN. Thật không may, hiện nay chưa có giải pháp cho vấn đề này.",
"message": "Có hai lý do có thể xảy ra: Hoặc do khuôn khổ/thư viện được yêu cầu nhưng LocalCDN chưa phân phối hoặc do SOP. SOP (Viết tắt của từ tiếng Anh \"Same origin policy\" dịch tạm là \"Điều khoản đồng nguồn\") là một cơ chế bảo mật quyết định dữ liệu nào mà trình duyệt được phép tải. Nó giúp cô lập các tài liệu độc hại, từ đó làm giảm thiểu các nguy cơ tấn công có thể xảy ra. Điều khoản này ngăn chặn các trình duyệt tải các framework bên ngoài của LocalCDN. Thật không may, hiện nay chưa có giải pháp cho vấn đề này.",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
@ -388,19 +388,19 @@
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "Đừng lo, sẽ không có gì được truyền đi. Điều đó sẽ trái với tất cả các nguyên tắc của tôi. Thống kê (ở định dạng JSON) chứa các thông tin sau: Ngày, CDN + bộ đếm và khuôn khổ + bộ đếm. Đó là tất cả. Tôi có một ví dụ dưới đây:",
"message": "Đừng lo, sẽ không có gì được truyền đi. Điều đó sẽ trái với tất cả các nguyên tắc của tôi. Thống kê (ở định dạng JSON) chứa các thông tin sau: Ngày tháng, CDN + bộ đếm framework + bộ đếm. Đó là tất cả. Tôi có một ví dụ dưới đây:",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "Thống kê không chứa thông tin về trình duyệt, hệ điều hành, trang web yêu cầu, địa chỉ IP hoặc bất kỳ thông tin nào khác. Chỉ có ngày, CDN + bộ đếm và khung + bộ đếm. Nó cho bạn biết những khuôn khổ nào đã được thay thế bởi LocalCDN, tần suất và những CDN nào được yêu cầu.",
"message": "Thống kê không chứa thông tin về trình duyệt, hệ điều hành, trang web yêu cầu, địa chỉ IP hoặc bất kỳ thông tin nào khác. Chỉ có ngày tháng, CDN + bộ đếm và framework + bộ đếm. Nó cho bạn biết những framework nào đã được thay thế bởi LocalCDN, tần suất và những CDN nào được yêu cầu.",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
"message": "Làm thế nào để tôi biết những gì bạn đang nói là sự thật?",
"message": "Làm thế nào để tôi biết những gì bạn nói là sự thật?",
"description": "How do I know thats true?"
},
"helpStatisticsTruthDescription": {
"message": "Bộ nhớ mở rộng có thể được xem trực tiếp thông qua trình duyệt Firefox. Mở URL »about: debugging«, đi tới »Storage« và chọn »Extension Storage«. Trong khóa »internalStatisticsData« bạn sẽ tìm thấy dữ liệu được thu thập. Dữ liệu đó có thể được sao chép và đưa vào JSON PrettyPrinter để làm cho nó dễ đọc hơn. Lưu ý rằng bạn phải xóa dấu ngoặc kép đầu tiên và cuối cùng của dữ liệu và tên khóa của nó. Bạn sẽ có thể nhìn thấy chi tiết trong video này.",
"message": "Bộ nhớ của tiện ích mở rộng có thể được xem trực tiếp thông qua trình duyệt Firefox. Mở URL »about: debugging«, đi tới »Storage« và chọn »Extension Storage«. Trong khóa »internalStatisticsData« bạn sẽ tìm thấy dữ liệu được thu thập. Dữ liệu đó có thể được sao chép và đưa vào JSON PrettyPrinter để làm cho nó dễ đọc hơn. Lưu ý rằng bạn phải xóa dấu ngoặc kép đầu tiên và cuối cùng của dữ liệu và tên khóa của nó. Bạn sẽ có thể nhìn thấy chi tiết trong video này.",
"description": "The extension storage can be viewed directly with the Firefox browser. Open the URL »about:debugging«, switch to »Storage« and select »Extension Storage«. Under the key »internalStatisticsData« you will find the collected data. Just copy it and put it into a JSON PrettyPrinter to make it more readable. Please note that you have to remove the first and last quotation mark and the key to it. You should be able to see this clearly in this video."
},
"helpSyncTitle": {
@ -408,7 +408,7 @@
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
"message": "Đồng bộ hóa sẽ chỉ hoạt động nếu bạn đã đăng nhập bằng tài khoản Firefox của mình trên thiết bị và cho phép các add-on đồng bộ hóa trong cài đặt. Một máy chủ riêng mà bạn kiểm soát cũng có thể được sử dụng để đồng bộ hóa. Điều này sẽ đồng bộ hóa hầu hết các cài đặt của LocalCDN trên tất cả các thiết bị.",
"message": "Đồng bộ hóa sẽ chỉ hoạt động nếu bạn đã đăng nhập bằng tài khoản Firefox của mình trên thiết bị và cho phép các tiện ích đồng bộ hóa trong cài đặt. Một máy chủ riêng mà bạn kiểm soát cũng có thể được sử dụng để đồng bộ hóa. Điều này sẽ đồng bộ hóa hầu hết các cài đặt của LocalCDN trên tất cả các thiết bị.",
"description": "Sync will only work if you are logged in with a Firefox account on the device and have allowed add-ons to sync in the settings. A separate sync server under your control will also work. This will synchronize most of the settings of LocalCDN across all devices."
},
"helpSyncAccount": {

View File

@ -358,11 +358,11 @@ function check_resource() {
# Use Tor Proxy if set
if [ "$USE_TOR" = true ]; then
if ! torsocks wget -t 3 -qO ./tmp "$url"; then
if ! torsocks wget --retry-connrefused --waitretry=30 --read-timeout=30 --timeout=30 -t 10 -qO ./tmp "$url"; then
error=true
fi
else
if ! wget -t 3 -qO ./tmp "$url"; then
if ! wget --retry-connrefused --waitretry=30 --read-timeout=30 --timeout=30 -t 10 -qO ./tmp "$url"; then
error=true
fi
fi
@ -611,8 +611,6 @@ function create_url() {
url="$GITHUB/jquery-validation/jquery-validation/$version/dist/jquery.validate.min.js"
elif [ "$folder" = "history" ] && [ "$version" != "4.10.1" ]; then
url="$CLOUDFLARE/history/$version/history.production.min.js"
elif [ "$folder" = "dojo" ]; then
url="$CLOUDFLARE/dojo/$version/dojo.min.js"
elif [ "$folder" = "material-design-icons" ]; then
url="$GITHUB/Templarian/MaterialDesign-Webfont/v$version/$jfile/$subfile"
elif [ "$folder" = "algoliasearch" ]; then

View File

@ -34,6 +34,12 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed;
targetDetails = requestAnalyzer.getLocalTarget(requestDetails, tab.url);
if (targetDetails['result'] === 'blocked') {
return {
'redirectUrl': chrome.runtime.getURL('resources/blocked/index.html')
};
}
stateManager.requests[requestDetails.requestId] = {
tabIdentifier, targetDetails
};

View File

@ -36,22 +36,14 @@ manipulateDOM._removeCrossOriginAndIntegrityAttr = function (details) {
return;
}
if (details.statusCode === 200) {
let initiatorDomain, listedToManipulateDOM, negateHtmlFilter, filtering, header;
let initiatorDomain, header;
initiatorDomain = helpers.extractDomainFromUrl(details.url, true) || Address.EXAMPLE;
listedToManipulateDOM = stateManager._domainIsListed(initiatorDomain, 'manipulate-dom');
negateHtmlFilter = stateManager.getInvertOption;
if ((negateHtmlFilter || listedToManipulateDOM) && !(negateHtmlFilter && listedToManipulateDOM)) {
filtering = true;
} else {
filtering = false;
}
// by Jaap (https://gitlab.com/Jaaap)
header = details.responseHeaders.find((h) => h.name.toLowerCase() === 'content-type');
if (header && filtering) {
if (header && manipulateDOM.checkHtmlFilterEnabled(initiatorDomain)) {
let mimeType, isAllowlisted;
@ -151,6 +143,22 @@ manipulateDOM._searchCharset = function (str, charset) {
return str;
};
/**
* Public Methods
*/
manipulateDOM.checkHtmlFilterEnabled = function (url) {
let listedToManipulateDOM, negateHtmlFilter;
listedToManipulateDOM = stateManager._domainIsListed(url, 'manipulate-dom');
negateHtmlFilter = stateManager.getInvertOption;
if ((negateHtmlFilter || listedToManipulateDOM) && !(negateHtmlFilter && listedToManipulateDOM)) {
return true;
}
return false;
};
/**
* Initializations
*/

View File

@ -51,11 +51,13 @@ mappings.cdn = {
'angularjs/{version}/angular.': resources.angular,
'angular_material/{version}/angular-material.min.js': resources.angularMaterialDesignJS,
'angular_material/{version}/angular-material.min.css': resources.angularMaterialDesignCSS,
'dojo/{version}/dojo/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'ext-core/{version}/ext-core-debug.': resources.extCore,
'jquery/{version}/jquery.': resources.jQuery,
'jquerymobile/{version}/jquery.mobile.': resources.jQueryMobile,
'jquerymobile/{version}/jquery.mobile.min.js': resources.jQueryMobileJS,
'jquerymobile/{version}/jquery.mobile.js': resources.jQueryMobileJS,
'jquerymobile/{version}/jquery.mobile.min.css': resources.jQueryMobileCSS,
'jquerymobile/{version}/jquery.mobile.css': resources.jQueryMobileCSS,
'jqueryui/{version}/jquery-ui.js': resources.jQueryUI,
'jqueryui/{version}/jquery-ui.min.js': resources.jQueryUI,
'jqueryui/{version}/themes/base/minified/jquery-ui.min.css': resources.jQueryUiThemes,
@ -294,7 +296,6 @@ mappings.cdn = {
'docsearch.js/{version}/docsearch.css': resources.docsearchCSS,
'docsify/{version}/docsify.min.js': resources.docsify,
'docsify/{version}/docsify.js': resources.docsify,
'dojo/{version}/dojo.': resources.dojo,
'drawer/{version}/js/drawer.min.js': resources.drawerJS,
'drawer/{version}/css/drawer.min.css': resources.drawerCSS,
'dygraph/{version}/dygraph': resources.dygraph,
@ -352,10 +353,15 @@ mappings.cdn = {
'jquery-modal/{version}/jquery.modal.min.js': resources.jQueryModalJS,
'jquery-modal/{version}/jquery.modal.css': resources.jQueryModalCSS,
'jquery-modal/{version}/jquery.modal.min.css': resources.jQueryModalCSS,
'jquery-mobile/{version}/jquery.mobile.min.js': resources.jQueryMobileJS,
'jquery-mobile/{version}/jquery.mobile.js': resources.jQueryMobileJS,
'jquery-mobile/{version}/jquery.mobile.min.css': resources.jQueryMobileCSS,
'jquery-mobile/{version}/jquery.mobile.css': resources.jQueryMobileCSS,
'jquery-mousewheel/{version}/jquery.mousewheel.min.js': resources.jqueryMousewheelJS,
'jquery-cookie/{version}/jquery.cookie.': resources.jqueryCookie,
'jquery.scrollbar/{version}/jquery.scrollbar.min.js': resources.jQueryScrollbar,
'jquery.scrollbar/{version}/jquery.scrollbar.js': resources.jQueryScrollbar,
'jquery.scrollTo/{version}/jquery.scrollTo.': resources.jQueryScrollTo,
'jquery-timeago/{version}/jquery.timeago.min.js': resources.jqueryTimeago,
'jquery-timeago/{version}/jquery.timeago.js': resources.jqueryTimeago,
'jquery-tiny-pubsub/{version}/ba-tiny-pubsub.': resources.jQueryTinyPubsub,
@ -509,7 +515,10 @@ mappings.cdn = {
'/': {
'jquery-{version}.': resources.jQuery,
'ui/{version}/jquery-ui.': resources.jQueryUI,
'mobile/{version}/jquery.mobile': resources.jQueryMobile,
'mobile/{version}/jquery.mobile-{version}.min.js': resources.jQueryMobileJS,
'mobile/{version}/jquery.mobile-{version}.js': resources.jQueryMobileJS,
'mobile/{version}/jquery.mobile-{version}.min.css': resources.jQueryMobileCSS,
'mobile/{version}/jquery.mobile-{version}.css': resources.jQueryMobileCSS,
'jquery-migrate-{version}.': resources.jQueryMigrate
}
},
@ -574,7 +583,6 @@ mappings.cdn = {
'docsify-themeable@{version}/dist/css/theme-defaults.css': resources.docsifyThemeDefault,
'docsify-themeable@{version}/dist/css/theme-simple.css': resources.docsifyThemeSimple,
'docsify-themeable@{version}/dist/css/theme-simple-dark.css': resources.docsifyThemeSimpleDark,
'dojo@{version}/dojo.': resources.dojo,
'ethjs@{version}/dist/ethjs.': resources.ethJs,
'exif-js@{version}/exif.': resources.exifJS,
'@findify/bundle@{version}/dist/bundle.js': resources.findifyBundle,
@ -597,6 +605,7 @@ mappings.cdn = {
'instantsearch.css@{version}': resources.InstantSearchCSS,
'jquery@{version}/dist/jquery.': resources.jQuery,
'jquery@{version}/dist/jquery.min.': resources.jQuery,
'jquery.scrollto@{version}/jquery.scrollTo.': resources.jQueryScrollTo,
'jquery-ui@{version}/jquery-ui.js': resources.jQueryUI,
'jquery-ui@{version}/jquery-ui.min.js': resources.jQueryUI,
'jquery-ui-dist@{version}/jquery-ui.js': resources.jQueryUI,
@ -677,7 +686,6 @@ mappings.cdn = {
'bluebird/{version}/bluebird.': resources.bluebird,
'bootstrap/{version}/css/bootstrap.': resources.bootstrapCSS,
'bootstrap/{version}/js/bootstrap.': resources.bootstrapJS,
'dojo/{version}/dojo.': resources.dojo,
'fontawesome/{version}/css/font-awesome.min.css': resources.fontawesome,
'foundation-icons/{version}/foundation-icons.min.css': resources.foundationIconsCSS,
'gh/alpinejs/alpine@v{version}/dist/alpine.': resources.alpinejs,
@ -741,7 +749,6 @@ mappings.cdn = {
'angularjs/{version}/angular.': resources.angular,
'backbone/{version}/backbone.': resources.backbone,
'backbone/{version}/backbone-min.': resources.backbone,
'dojo/{version}/dojo/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'jquery/{version}/jquery.': resources.jQuery,
'jquery-ui/{version}/jquery-ui.js': resources.jQueryUI,
@ -762,7 +769,6 @@ mappings.cdn = {
'angularjs/{version}/angular.': resources.angular,
'backbone/{version}/backbone.': resources.backbone,
'backbone/{version}/backbone-min.': resources.backbone,
'dojo/{version}/dojo/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'highlightjs/{version}/': resources.highlightJS,
'jquery/{version}/jquery.': resources.jQuery,
@ -795,7 +801,6 @@ mappings.cdn = {
'angular.js/{version}/angular.': resources.angular,
'backbone.js/{version}/backbone.': resources.backbone,
'backbone.js/{version}/backbone-min.': resources.backbone,
'dojo/{version}/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'jquery/{version}/jquery.': resources.jQuery,
'jqueryui/{version}/jquery-ui.js': resources.jQueryUI,
@ -830,7 +835,6 @@ mappings.cdn = {
'angular.js/{version}/angular.': resources.angular,
'backbone.js/{version}/backbone.': resources.backbone,
'backbone.js/{version}/backbone-min.': resources.backbone,
'dojo/{version}/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'jquery/{version}/jquery.': resources.jQuery,
'jqueryui/{version}/jquery-ui.js': resources.jQueryUI,
@ -861,7 +865,6 @@ mappings.cdn = {
'angular.js/{version}/angular.': resources.angular,
'backbone.js/{version}/backbone.': resources.backbone,
'backbone.js/{version}/backbone-min.': resources.backbone,
'dojo/{version}/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'jquery/{version}/jquery.': resources.jQuery,
'jqueryui/{version}/jquery-ui.js': resources.jQueryUI,
@ -893,7 +896,6 @@ mappings.cdn = {
'angular.js/{version}/angular.': resources.angular,
'backbone.js/{version}/backbone.': resources.backbone,
'backbone.js/{version}/backbone-min.': resources.backbone,
'dojo/{version}/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'jquery/{version}/jquery.': resources.jQuery,
'jqueryui/{version}/jquery-ui.js': resources.jQueryUI,
@ -924,7 +926,6 @@ mappings.cdn = {
'angular.js/{version}/angular.': resources.angular,
'backbone.js/{version}/backbone.': resources.backbone,
'backbone.js/{version}/backbone-min.': resources.backbone,
'dojo/{version}/dojo.': resources.dojo,
'element-ui/{version}/': resources.elementUI,
'ext-core/{version}/ext-core.': resources.extCore,
'font-awesome/{version}/css/font-awesome.': resources.fontawesome,
@ -971,7 +972,6 @@ mappings.cdn = {
'/js/': {
'angular.js/angular-{version}/angular.': resources.angular,
'backbone/{version}/backbone.': resources.backbone,
'dojo/{version}/dojo.': resources.dojo,
'ext-core/{version}/ext-core.': resources.extCore,
'ext-core/{version}/ext-core-debug.': resources.extCore,
'jquery/{version}/jquery.': resources.jQuery,
@ -991,7 +991,6 @@ mappings.cdn = {
// UpYun Library
'upcdn.b0.upaiyun.com': {
'/libs/': {
'dojo/dojo-{version}.': resources.dojo,
'jquery/jquery-{version}.': resources.jQuery,
'jqueryui/jquery.ui-{version}.js': resources.jQueryUI,
'jqueryui/jquery.ui-{version}.min.js': resources.jQueryUI,

View File

@ -158,10 +158,10 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
// Handle weird version expressions
if (!versionNumber && Resource.SINGLE_NUMBER_EXPRESSION.test(channelPath)) {
versionNumber = channelPath.match(/\d/);
resourcePattern = resourcePath.replace(versionNumber, Resource.VERSION_PLACEHOLDER);
resourcePattern = resourcePath.replaceAll(versionNumber, Resource.VERSION_PLACEHOLDER);
versionNumber = [`${versionNumber}.0`];
} else {
resourcePattern = resourcePath.replace(versionNumber, Resource.VERSION_PLACEHOLDER);
resourcePattern = resourcePath.replaceAll(versionNumber, Resource.VERSION_PLACEHOLDER);
}
shorthandResource = shorthands.specialFiles(channelHost, channelPath, destinationSearchString);
@ -181,7 +181,7 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
if (resourcePattern.startsWith(resourceMold)) {
let targetPath, versionDelivered, versionRequested, bundle;
targetPath = resourceMappings[resourceMold].path;
targetPath = targetPath.replace(Resource.VERSION_PLACEHOLDER, versionNumber);
targetPath = targetPath.replaceAll(Resource.VERSION_PLACEHOLDER, versionNumber);
// Replace the requested version with the latest depending on major version
versionDelivered = targets.setLastVersion(targetPath, versionNumber);
if (versionDelivered === '') {
@ -190,7 +190,7 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
};
}
targetPath = targetPath.replace(versionNumber, versionDelivered);
targetPath = targetPath.replaceAll(versionNumber, versionDelivered);
if (versionNumber === null) {
versionDelivered = targetPath.match(Resource.VERSION_EXPRESSION).toString();
@ -226,6 +226,11 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
console.warn(`${LogString.PREFIX} ${LogString.MISSING_RESOURCE} ${channelHost}${channelPath}`);
log.append(initiator, channelHost + channelPath, '-', true);
}
if (Object.keys(mappings.cdn).includes(helpers.extractDomainFromUrl(initiator, true))) {
return {'result': 'blocked'};
}
return {
'result': false,
};

View File

@ -374,10 +374,6 @@ var resources = {
'docsifyThemeSimpleDark': {
'path': 'resources/docsify-themeable/{version}/theme-simple-dark.css'
},
// Dojo
'dojo': {
'path': 'resources/dojo/{version}/dojo/dojo.jsm'
},
// Drawer [Deprecated]
'drawerJS': {
'path': 'resources/drawer/{version}/drawer.min.jsm'
@ -596,6 +592,10 @@ var resources = {
'jQueryScrollbar': {
'path': 'resources/jquery.scrollbar/{version}/jquery.scrollbar.min.jsm'
},
// jQuery-scrollTo
'jQueryScrollTo': {
'path': 'resources/jquery-scrollTo/{version}/jquery.scrollTo.min.jsm'
},
// jQuery Tablesorter
'jQueryTablesorter': {
'path': 'resources/jquery.tablesorter/{version}/jquery.tablesorter.min.jsm'
@ -636,9 +636,12 @@ var resources = {
'path': 'resources/jquery-validate/{version}/jquery.validate.min.jsm'
},
// jQuery Mobile [Deprecated]
'jQueryMobile': {
'jQueryMobileJS': {
'path': 'resources/jquery-mobile/{version}/jquery.mobile.min.jsm'
},
'jQueryMobileCSS': {
'path': 'resources/jquery-mobile/{version}/jquery.mobile.min.css'
},
// jquery-validation-unobtrusive
'jQueryValidationUnobtrusive': {
'path': 'resources/jquery-validation-unobtrusive/{version}/jquery.validate.unobtrusive.min.jsm'

View File

@ -31,7 +31,7 @@ var stateManager = {};
*/
stateManager.registerInjection = function (tabIdentifier, injection, url) {
let injectionIdentifier, registeredTab, injectionCount, missingCount, initiatorDomain, listedToManipulateDOM;
let injectionIdentifier, registeredTab, injectionCount, missingCount, initiatorDomain, htmlFilterIsActive;
if (injection['result'] !== false) {
injectionIdentifier = injection.source + injection.path;
@ -40,7 +40,7 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) {
}
initiatorDomain = helpers.extractDomainFromUrl(url, true) || Address.EXAMPLE;
listedToManipulateDOM = stateManager._domainIsListed(initiatorDomain, 'manipulate-dom');
htmlFilterIsActive = manipulateDOM.checkHtmlFilterEnabled(initiatorDomain);
injectionCount = Object.keys(registeredTab.injections).length || 0;
missingCount = registeredTab.missing || 0;
@ -54,7 +54,7 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) {
if (stateManager.showIconBadge === true) {
if (missingCount > 0 && stateManager.changeBadgeColorMissingResources) {
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingMissingResource.TYPE);
} else if (listedToManipulateDOM) {
} else if (htmlFilterIsActive) {
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingHTMLFilter.TYPE);
} else {
wrappers.setBadgeColoring(tabIdentifier, BadgeSetting.TYPE);

View File

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "LocalCDN",
"version": "2.6.30",
"version": "2.6.31",
"browser_specific_settings": {
"gecko": {
"id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}",

View File

@ -80,9 +80,9 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/1000hz-bootstrap-validator/0.')) return '0.11.9';
if (type.startsWith('/ajax-bootstrap-select/1.')) return '1.4.5';
if (type.startsWith('/algoliasearch/3.')) return '3.35.1';
if (type.startsWith('/algoliasearch/4.')) return '4.13.1';
if (type.startsWith('/algoliasearch/4.')) return '4.14.1';
if (type.startsWith('/alpinejs/2.')) return '2.8.2';
if (type.startsWith('/alpinejs/3.')) return '3.10.2';
if (type.startsWith('/alpinejs/3.')) return '3.10.3';
if (type.startsWith('/anchor-js/3.')) return '3.2.2';
if (type.startsWith('/anchor-js/4.')) return '4.3.1';
if (type.startsWith('/angular.js/1.')) {
@ -146,7 +146,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/bootstrap-daterangepicker/2.')) return '2.1.27';
if (type.startsWith('/bootstrap-daterangepicker/3.')) return '3.1';
if (type.startsWith('/bootstrap-datepicker/1.')) return '1.9.0';
if (type.startsWith('/bootstrap-icons/1.')) return '1.8.3';
if (type.startsWith('/bootstrap-icons/1.')) return '1.9.1';
if (type.startsWith('/bootstrap-multiselect/0.')) return '0.9.16';
if (type.startsWith('/bootstrap-multiselect/1.')) return '1.1.1';
if (type.startsWith('/bootstrap-slider/10.')) return '10.6.2';
@ -181,12 +181,11 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/d3/7.')) return '7.6.1';
if (type.startsWith('/d3-legend/2.')) return '2.25.6';
if (type.startsWith('/datatables/1.')) return '1.11.0';
if (type.startsWith('/dayjs/1.')) return '1.11.3';
if (type.startsWith('/dayjs/1.')) return '1.11.4';
if (type.startsWith('/dexie/3.') || type.startsWith('/dexie/latest')) return '3.2.2';
if (type.startsWith('/docsearch.js/2.')) return '2.6.3';
if (type.startsWith('/docsify/4.') || type.startsWith('/docsify/')) return '4.12.2';
if (type.startsWith('/docsify-themeable/0.')) return '0.8.6';
if (type.startsWith('/dojo/1.')) return '1.17.2';
if (type.startsWith('/drawer/3.')) return '3.2.2';
if (type.startsWith('/dygraph/1.')) return '1.1.1';
if (type.startsWith('/dygraph/2.')) return '2.1.0';
@ -199,7 +198,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/findify')) {
if (helpers.compareVersion('6.9.15', version)) return '6.9.15'; // <= 6.9.15
if (helpers.compareVersion('6.17.0', version)) return '6.17.0'; // > 6.9.15 to <= 6.17.0
return '7.1.50';
return '7.1.55';
}
if (type.startsWith('/fancybox/2.')) return '2.1.7';
if (type.startsWith('/fancybox/3.')) return '3.5.7';
@ -213,7 +212,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/font-awesome/6.')) return '6.1.1';
if (type.startsWith('/fork-awesome/1.')) return '1.2.0';
if (type.startsWith('/foundation/5.')) return '5.5.3';
if (type.startsWith('/foundation/6.')) return '6.7.4';
if (type.startsWith('/foundation/6.')) return '6.7.5';
if (type.startsWith('/foundicons/3.')) return '3.0.0';
if (type.startsWith('/granim/2.')) return '2.0.0';
if (type.startsWith('/gsap/1.')) return '1.20.5';
@ -221,18 +220,18 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/gsap/3.')) return '3.10.4';
// just for testing ----------------------------------------------
if (type.startsWith('/materialicons/')) return 'v134';
if (type.startsWith('/materialiconsoutlined/')) return 'v106';
if (type.startsWith('/materialiconsround/')) return 'v105';
if (type.startsWith('/materialiconssharp/')) return 'v106';
if (type.startsWith('/materialiconstwotone/')) return 'v109';
if (type.startsWith('/materialicons/')) return 'v135';
if (type.startsWith('/materialiconsoutlined/')) return 'v107';
if (type.startsWith('/materialiconsround/')) return 'v106';
if (type.startsWith('/materialiconssharp/')) return 'v107';
if (type.startsWith('/materialiconstwotone/')) return 'v110';
// ---------------------------------------------------------------
if (type.startsWith('/highlight.js/7.')) return '9.18.5';
if (type.startsWith('/highlight.js/8.')) return '9.18.5';
if (type.startsWith('/highlight.js/9.')) return '9.18.5';
if (type.startsWith('/highlight.js/10.')) return '10.7.3';
if (type.startsWith('/highlight.js/11.')) return '11.5.1';
if (type.startsWith('/highlight.js/11.')) return '11.6.0';
if (type.startsWith('/history/4.')) return '4.10.1';
if (type.startsWith('/history/5.')) return '5.3.0';
if (type.startsWith('/hls.js/0.')) return '0.14.17';
@ -240,7 +239,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/hogan.js/')) return '3.0.2';
if (type.startsWith('/instantsearch.css/7.')) return '7.4.5';
if (type.startsWith('/instantsearch.js/3.')) return '3.7.0';
if (type.startsWith('/instantsearch.js/4.')) return '4.43.0';
if (type.startsWith('/instantsearch.js/4.')) return '4.43.1';
if (type.startsWith('/iScroll/5.')) return '5.2.0';
if (type.startsWith('/izimodal/1.')) return '1.6.1';
if (type.startsWith('/jets/0.')) return '0.14.1';
@ -274,7 +273,10 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/jquery.matchHeight/0.')) return '0.7.2';
if (type.startsWith('/jquery-migrate/1.')) return '1.4.1';
if (type.startsWith('/jquery-migrate/3.')) return '3.4.0';
if (type.startsWith('/jquery-mobile/1.')) return '1.4.5';
if (type.startsWith('/jquery-mobile/1.')) {
if (helpers.compareVersion('1.3.2', version)) return '1.3.2'; // <= v1.3.2
return '1.4.5';
}
if (type.startsWith('/jquery-mousewheel/3.')) return '3.1.13';
if (type.startsWith('/jScrollPane/2.')) return '2.2.2';
if (type.startsWith('/jquery-validate/1.')) return '1.19.5';
@ -283,7 +285,9 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/jquery.cycle2/2.')) return '2.1.6';
if (type.startsWith('/jquery.scrollbar/0.')) return '0.2.11';
if (type.startsWith('/jquery-validation-unobtrusive/3.')) return '3.2.12';
if (type.startsWith('/jquery-validation-unobtrusive/4.')) return '4.0.0';
if (type.startsWith('/jquery.tablesorter/2.')) return '2.31.3';
if (type.startsWith('/jquery-scrollTo/2.')) return '2.1.3';
if (type.startsWith('/jquery-timeago/1.')) return '1.6.7';
if (type.startsWith('/jquery-tiny-pubsub/0.')) return '0.7.0';
if (type.startsWith('/jquery-ujs/1.')) return '1.2.3';
@ -300,7 +304,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/Leaflet.EasyButton/2.')) return '2.4.0';
if (type.startsWith('/leaflet.featuregroup.subgroup/1.')) return '1.0.2';
if (type.startsWith('/leaflet.markercluster/1.')) return '1.5.3';
if (type.startsWith('/libphonenumber-js/1.')) return '1.10.7';
if (type.startsWith('/libphonenumber-js/1.')) return '1.10.9';
if (type.startsWith('/libsodium-wrappers/0.')) return '0.5.4';
if (type.startsWith('/lightbox2/2.')) return '2.11.3';
if (type.startsWith('/lightcase/2.')) return '2.5.0';
@ -324,7 +328,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/mathjax/2.') || type.startsWith('/mathjax/latest')) return '2.7.5';
if (type.startsWith('/mathjax/3.')) return '3.2.2';
if (type.startsWith('/mdb-ui-kit/3.')) return '3.11.0';
if (type.startsWith('/mdb-ui-kit/4.')) return '4.2.0';
if (type.startsWith('/mdb-ui-kit/4.')) return '4.3.0';
if (type.startsWith('/mobile/1.')) return '1.4.5';
if (type.startsWith('/Modaal/0.')) return '0.4.4';
if (type.startsWith('/modernizr/2.')) return '2.8.3';
@ -349,7 +353,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/owl-carousel/2.')) return '2.3.4';
if (type.startsWith('/p2p-media-loader-core') || type.startsWith('/p2p-media-loader-hlsjs')) return '0.6.2';
if (type.startsWith('/p5.js/0.')) return '0.10.2';
if (type.startsWith('/p5.js/1.')) return '1.4.1';
if (type.startsWith('/p5.js/1.')) return '1.4.2';
if (type.startsWith('/page.js/1.')) return '1.11.6';
if (type.startsWith('/paginationjs/2.')) return '2.1.5';
if (type.startsWith('/plyr/3.')) return '3.7.2';
@ -411,7 +415,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/Swiper/5.')) return '5.4.5';
if (type.startsWith('/Swiper/6.')) return '6.8.4';
if (type.startsWith('/Swiper/7.')) return '7.4.1';
if (type.startsWith('/Swiper/8.') || type.startsWith('/Swiper/')) return '8.3.0';
if (type.startsWith('/Swiper/8.') || type.startsWith('/Swiper/')) return '8.3.1';
if (type.startsWith('/tether/1.')) return '1.4.7';
if (type.startsWith('/tinymce/5.')) return '5.10.5';
if (type.startsWith('/tinymce/6.')) return '6.1.0';
@ -425,12 +429,12 @@ targets.setLastVersion = function (type, version) {
return '3.4.1';
}
if (type.startsWith('/twitter-bootstrap/4.')) return '4.6.1';
if (type.startsWith('/twitter-bootstrap/5.')) return '5.1.3';
if (type.startsWith('/twitter-bootstrap/5.')) return '5.2.0';
if (type.startsWith('/twix.js/0.')) return '0.3.0';
if (type.startsWith('/twix.js/1.')) return '1.3.0';
if (type.startsWith('/underscore.js/1.')) return '1.13.4';
if (type.startsWith('/urlive/1.')) return '1.1.1';
if (type.startsWith('/vanilla-lazyload')) return '17.8.2';
if (type.startsWith('/vanilla-lazyload')) return '17.8.3';
if (type.startsWith('/vex-js/3.')) return '3.1.1';
if (type.startsWith('/vex-js/4.')) return '4.1.0';
if (type.startsWith('/videojs-seek-buttons/1.')) return '1.6.0';
@ -465,6 +469,7 @@ targets.determineResourceName = function (filename) {
};
const ListOfFiles = {
'jquery.scrollTo.min.jsm': 'jQuery.scrollTo',
'twix.min.jsm': 'twix.js',
'angular-locale_en-us.min.jsm': 'angular-i18n',
'angular-translate-loader-partial.min.jsm': 'angular-translate-loader-partial',
@ -689,7 +694,6 @@ const ListOfFiles = {
'd3-legend.min.jsm': 'D3.js Legend',
'd3.min.jsm': 'D3.js',
'daterangepicker.min.jsm': 'Bootstrap Daterangepicker',
'dojo.jsm': 'Dojo',
'ember.min.jsm': 'Ember.js',
'ext-core.jsm': 'Ext Core',
'flv.min.jsm': 'flv.js',
@ -707,7 +711,8 @@ const ListOfFiles = {
'jquery.jeditable.min.jsm': 'jQuery Validation Plugin',
'jquery.lazyload.min.jsm': 'jQuery Lazy Load',
'jquery.min.jsm': 'jQuery',
'jquery.mobile.min.jsm': 'jQuery Mobile',
'jquery.mobile.min.jsm': 'jQuery Mobile (JS)',
'jquery.mobile.min.css': 'jQuery Mobile (CSS)',
'jquery.modal.min.css': 'jQuery Modal',
'jquery.modal.min.jsm': 'jQuery Modal',
'jquery.tablesorter.min.jsm': 'jQuery Tablesorter',

View File

@ -82,11 +82,6 @@ wrappers.setIcon = function (details, type) {
wrappers.setBadgeColoring = function (tabId, value) {
let textColor, backgroundColor;
if (chrome.browserAction.setBadgeBackgroundColor === undefined ||
chrome.browserAction.setBadgeTextColor === undefined) {
return;
}
if (value === BadgeSettingHTMLFilter.TYPE) {
textColor = wrappers.badgeHTMLfilterTextColor;
backgroundColor = wrappers.badgeHTMLFilterBackgroundColor;
@ -100,12 +95,17 @@ wrappers.setBadgeColoring = function (tabId, value) {
return;
}
chrome.browserAction.setBadgeTextColor({
'tabId': tabId,
'color': textColor
});
chrome.browserAction.setBadgeBackgroundColor({
'tabId': tabId,
'color': backgroundColor
});
if (chrome.browserAction.setBadgeTextColor !== undefined) {
chrome.browserAction.setBadgeTextColor({
'tabId': tabId,
'color': textColor
});
}
if (chrome.browserAction.setBadgeBackgroundColor !== undefined) {
chrome.browserAction.setBadgeBackgroundColor({
'tabId': tabId,
'color': backgroundColor
});
}
};

View File

@ -236,17 +236,6 @@ textarea {
visibility: hidden;
}
#chromium-banner {
background-color: #ffcccc;
border: 1px solid red;
border-radius: 3px;
display: none;
font-weight: bold;
margin-top: 20px;
padding: 0.8em;
text-align: center;
}
#notice-locale {
background-color: #ffa500;
border-radius: 3px;

View File

@ -2,12 +2,12 @@
* Donations
*/
#table-bank-transfer, .mono-block {
font-family: 'monospace', 'Consolas', Arial, sans-serif;
h3 {
margin: 0;
}
#table-bank-transfer > tbody > tr > td:nth-of-type(1) {
font-weight: bold;
#table-bank-transfer, .mono-block {
font-family: 'monospace', 'Consolas', Arial, sans-serif;
}
.div-donations {

View File

@ -21,19 +21,10 @@
</div>
<div class="subtle-hint div-donations">
<h3>SEPA Bank Transfer</h3>
<div id="div-bank-transfer">
<table id="table-bank-transfer">
<tr>
<td></td><td>LocalCDN</td>
</tr>
<tr>
<td>IBAN:</td><td>DE22&nbsp;5003&nbsp;1000&nbsp;1069&nbsp;4660&nbsp;16</td>
</tr>
<tr>
<td>BIC:</td><td>TRODDEF1XXX</td>
</tr>
</table>
</div>
<p class="mono-block">
<span>IBAN:&nbsp;DE22&nbsp;5003&nbsp;1000&nbsp;1069&nbsp;4660&nbsp;16</span><br/>
<span>BIC:&nbsp;&nbsp;TRODDEF1XXX</span>
</p>
</div>
<div class="subtle-hint div-donations">
<h3>Bitcoin</h3>
@ -50,6 +41,25 @@
<br/>
<a href="monero:46j26ggSZNT9rN7VeFYXp2PsKEMyJSSYneBVKXY4xeemdfZfCpNg6tQEXQZpWiTTuGX3SbnDPwuh3167cCoYSrqN72H9jPk?tx_description=LocalCDN">Open in Wallet</a>
</div>
<div class="subtle-hint div-donations">
<h3>Buy Me a Coffee</h3>
<p>I would appreciate a coffee so I can program faster! 🙂</p>
<p>
<a href="https://www.buymeacoffee.com/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">www.buymeacoffee.com/LocalCDN</a>
</p>
<a href="https://www.buymeacoffee.com/LocalCDN" class="no-icon" target="_blank" rel="nofollow noopener noreferrer">
<img src="../images/buymeacoffee.png" alt="Buy Me A Coffee">
</a>
</div>
<div class="subtle-hint div-donations">
<h3>Open Collective</h3>
<p>
<a href="https://opencollective.com/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">www.opencollective.com/LocalCDN</a>
</p>
<a href="https://www.buymeacoffee.com/LocalCDN" class="no-icon" target="_blank" rel="nofollow noopener noreferrer">
<img src="../images/opencollective.png" alt="Open Collective">
</a>
</div>
<p>
<ul>
<li><strong>Why no PayPal?</strong> I hope this question is not serious. 🙂 If it does: PayPal shares the data collected from customers with over 600 other companies.</li>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@ -406,6 +406,17 @@ body[dir="rtl"] .input-text {
width: 10px;
}
.chromium-banner {
background-color: #ffcccc;
border: 1px solid red;
border-radius: 3px;
display: none;
font-weight: bold;
margin-top: 20px;
padding: 0.8em;
text-align: center;
}
@media only screen and (max-width: 760px) {
.div-badge {
border: none;
@ -452,4 +463,9 @@ body[dir="rtl"] .input-text {
.options-help-icon {
background-image: url("../../icons/help-light.svg");
}
.chromium-banner {
background-color: #A20B0B;
color: white;
}
}

View File

@ -35,7 +35,7 @@
<input type="button" id="btn-info-tab" class="option-buttons" data-option-tab="info-tab" data-i18n-content="btnInfo" value="Info"/>
</div>
<div id="chromium-banner">Non-Firefox browsers do not support all features of LocalCDN. <a class="no-icon" href="../help/help.html#browser-compatibility">Read more</a></div>
<div id="chromium-banner" class="chromium-banner">Non-Firefox browsers do not support all features of LocalCDN. <a class="no-icon" href="../help/help.html#browser-compatibility">Read more</a></div>
<div id="general-tab" class="tab-content">
<div class="option-group">

View File

@ -45,7 +45,6 @@ popup._renderContents = function () {
.then(popup._determineStatusManipulateDOM)
.then(popup._determineStatusGoogleFonts)
.then(popup._determineResourceInjections)
.then(popup._determineNegateHtmlFilterOption)
.then(popup._renderContextualContents);
if (BrowserType.CHROMIUM) {

View File

@ -66,7 +66,7 @@ select, #btn-delete {
.container {
margin-left: auto;
margin-right: auto;
width: 300px;
width: 400px;
}
.overview {

View File

@ -209,9 +209,9 @@ statistics._displayNameOfFramework = function (str, type) {
filename = 'Google Charts';
} else if (str === 'resources/fontawesome/5.15.1/css/v4-shims.css') {
filename = 'Font Awesome (Shim)';
} else if (str === 'resources/bootstrap/fonts/') {
} else if (str === 'resources/twitter-bootstrap/fonts/') {
filename = 'Bootstrap (Fonts)';
} else {
} else if (str.length === 0) {
console.warn(`[LocalCDN] Missing path: ${str}`);
}
}

View File

@ -27,18 +27,42 @@
<div class="release-notes-area">
<p>Updated</p>
<ul>
<li>d3 v7.5.0 -> v7.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1045">#1045</a>)</li>
<li>moment.js v2.29.3 -> v2.29.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1046">#1046</a>)</li>
<li>Swiper v8.2.6 -> v8.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1047">#1047</a>)</li>
<li>findify-bundle v7.1.49 -> v7.1.50 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1048">#1048</a>)</li>
<li>findify-bundle v7.1.50 -> v7.1.55 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1055">#1055</a>)</li>
<li>Swiper v8.3.0 -> v8.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1056">#1056</a>)</li>
<li>foundation v6.7.4 -> v6.7.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1057">#1057</a>)</li>
<li>mdb-ui-kit v4.2.0 -> v4.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1058">#1058</a>)</li>
<li>highlight.js v11.5.1 -> v11.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1059">#1059</a>)</li>
<li>bootstrap-icons v1.8.3 -> v1.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1060">#1060</a>)</li>
<li>instantsearch.js v4.43.0 -> v4.43.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1061">#1061</a>)</li>
<li>libphonenumber-js v1.10.7 -> v1.10.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1062">#1062</a>)</li>
<li>algoliasearch v4.13.1 -> v4.14.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1064">#1064</a>)</li>
<li>Google Material Icons v134 -> v135 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1065">#1065</a>)</li>
<li>Google Material Icons Outlined v106 -> v107 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1065">#1065</a>)</li>
<li>Google Material Icons Round v105 -> v106 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1065">#1065</a>)</li>
<li>Google Material Icons Sharp v106 -> v107 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1065">#1065</a>)</li>
<li>Google Material Icons TwoTone v109 -> v110 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1065">#1065</a>)</li>
<li>twitter-bootstrap v5.1.3 -> v5.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1066">#1066</a>)</li>
<li>dayjs v1.11.3 -> v1.11.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1067">#1067</a>)</li>
<li>vanilla-lazyload v17.8.2 -> v17.8.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1071">#1071</a>)</li>
<li>alpinejs v3.10.2 -> v3.10.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1072">#1072</a>)</li>
<li>p5.js v1.4.1 -> v1.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1073">#1073</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>jQuery Mobile CSS v1.4.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1063">#1063</a>)</li>
<li>jQuery Mobile CSS & JS v1.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1063">#1063</a>)</li>
<li>jQuery.scrollTo v2.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1070">#1070</a>)</li>
<li>jquery-validation-unobtrusive v4.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1074">#1074</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Popup accessibility improved (<a href="https://codeberg.org/nobody/LocalCDN/issues/1041">#1041</a>)</li>
<li>Custom block screen (<a href="https://codeberg.org/nobody/LocalCDN/issues/1050">#1050</a>)</li>
<li>Banner for chromium based browser (<a href="https://codeberg.org/nobody/LocalCDN/issues/1068">#1068</a>)</li>
<li>Chromium: Badge color for missing resources (<a href="https://codeberg.org/nobody/LocalCDN/issues/1031">#1031</a>)</li>
</ul>
<p>Fixed</p>
<p>Removed</p>
<ul>
<li>Popup does not show injections (<a href="https://codeberg.org/nobody/LocalCDN/issues/1043">#1043</a>)</li>
<li>Dojo removed (<a href="https://codeberg.org/nobody/LocalCDN/issues/1054">#1054</a>)</li>
</ul>
</div>
<div id="generator-section">
@ -77,6 +101,22 @@
</div>
<div id="history"><span id="history-indicator">+</span> Previous Versions</div>
<div id="history-release-notes">
<p class='release-date'>2022-07-09 (v2.6.30)</p>
<p>Updated</p>
<ul>
<li>d3 v7.5.0 -> v7.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1045">#1045</a>)</li>
<li>moment.js v2.29.3 -> v2.29.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1046">#1046</a>)</li>
<li>Swiper v8.2.6 -> v8.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1047">#1047</a>)</li>
<li>findify-bundle v7.1.49 -> v7.1.50 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1048">#1048</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Popup accessibility improved (<a href="https://codeberg.org/nobody/LocalCDN/issues/1041">#1041</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>Popup does not show injections (<a href="https://codeberg.org/nobody/LocalCDN/issues/1043">#1043</a>)</li>
</ul>
<p class='release-date'>2022-07-03 (v2.6.29)</p>
<p>Updated</p>
<ul>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Blocked by LocalCDN</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<style>
html {
background-color: #eee;
box-sizing: border-box;
}
body {
font-size: 1.4em;
text-align: center;
color: #222;
font-family: Helvetica, sans-serif;
}
.logo {
display: block;
height: 7em;
margin: 3em auto;
}
@media (prefers-color-scheme: dark) {
html {
background-color: #404040;
}
body {
color: #aeaeae !important;
}
}
</style>
</head>
<body>
<img src="logo.svg" alt="LocalCDN" class="logo"/>
<p>This request was blocked because the resource is not included in LocalCDN.</p>
</body>
</html>

105
resources/blocked/logo.svg Normal file
View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
viewBox="0 0 294.361 294.361"
style="enable-background:new 0 0 294.361 294.361;"
xml:space="preserve"
sodipodi:docname="security-svgrepo-com.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata2411"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs2409" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="997"
id="namedview2407"
showgrid="false"
inkscape:zoom="0.80173666"
inkscape:cx="147.1805"
inkscape:cy="147.1805"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" />
<g
id="g2374"
style="fill:#058300;fill-opacity:1">
<path
d="M154.444,127.639l26.045,26.044c6.639-18.818,11.328-38.756,13.101-56.781c0.06-0.608-0.276-1.16-0.835-1.373 l-70.484-26.933c-0.152-0.058-0.312-0.088-0.475-0.088c-0.163,0-0.323,0.029-0.475,0.088L50.836,95.529 c-0.551,0.21-0.894,0.775-0.835,1.373c2.922,29.705,13.73,64.62,28.206,91.12c14.162,25.923,30.457,41.4,43.589,41.4 c5.948,0,12.545-3.184,19.298-9.067l-39.684-39.683c-14.644-14.645-14.644-38.388,0-53.033 C116.056,112.995,139.8,112.995,154.444,127.639z"
id="path2368"
style="fill:#058300;fill-opacity:1" />
<path
d="M155.255,234.516c-10.37,9.333-21.651,14.906-33.459,14.906c-46.932,0-85.544-87.976-91.7-150.562 c-0.94-9.56,4.627-18.585,13.6-22.013l70.486-26.933c2.451-0.937,5.032-1.405,7.614-1.405c2.581,0,5.162,0.468,7.613,1.405 l70.484,26.932c8.987,3.434,14.542,12.439,13.6,22.014c-0.969,9.846-2.742,20.322-5.223,30.984l34.029-34.029 c0.432-2.986,0.814-5.947,1.129-8.869c1.339-12.425-5.599-24.245-17.109-29.112L132.822,18.3c-7.048-2.98-15.002-2.98-22.05,0 L17.273,57.833C5.777,62.694-1.174,74.535,0.164,86.945c8.821,81.833,64.496,191.35,121.633,191.35 c19.371,0,38.571-12.598,55.837-32.427c-7.931-1.024-15.598-4.572-21.69-10.664L155.255,234.516z"
id="path2370"
style="fill:#058300;fill-opacity:1" />
<path
d="M288.504,102.645c-7.811-7.811-20.475-7.811-28.285,0l-77.758,77.759l-40.392-40.391 c-7.811-7.811-20.474-7.81-28.284,0.001c-7.811,7.811-7.809,20.474,0.001,28.284l54.533,54.532 c3.905,3.905,9.023,5.857,14.142,5.857c5.118,0,10.237-1.952,14.143-5.857l91.9-91.9 C296.313,123.12,296.313,110.456,288.504,102.645z"
id="path2372"
style="fill:#058300;fill-opacity:1" />
</g>
<g
id="g2376">
</g>
<g
id="g2378">
</g>
<g
id="g2380">
</g>
<g
id="g2382">
</g>
<g
id="g2384">
</g>
<g
id="g2386">
</g>
<g
id="g2388">
</g>
<g
id="g2390">
</g>
<g
id="g2392">
</g>
<g
id="g2394">
</g>
<g
id="g2396">
</g>
<g
id="g2398">
</g>
<g
id="g2400">
</g>
<g
id="g2402">
</g>
<g
id="g2404">
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -9,72 +9,72 @@
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url('./materialicons/v134/MaterialIcons.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialicons/v134/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); */
src: url('./materialicons/v135/MaterialIcons.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialicons/v135/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); */
}
@font-face {
font-family: 'Google Material Icons';
font-style: normal;
font-weight: 400;
src: url('./materialicons/v134/MaterialIcons.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialicons/v134/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); */
src: url('./materialicons/v135/MaterialIcons.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialicons/v135/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); */
}
@font-face {
font-family: 'Material Icons Outlined';
font-style: normal;
font-weight: 400;
src: url('./materialiconsoutlined/v106/MaterialIconsOutlined.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsoutlined/v106/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2) format('woff2'); */
src: url('./materialiconsoutlined/v107/MaterialIconsOutlined.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsoutlined/v107/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2) format('woff2'); */
}
@font-face {
font-family: 'Google Material Icons Outlined';
font-style: normal;
font-weight: 400;
src: url('./materialiconsoutlined/v106/MaterialIconsOutlined.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsoutlined/v106/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2) format('woff2'); */
src: url('./materialiconsoutlined/v107/MaterialIconsOutlined.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsoutlined/v107/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2) format('woff2'); */
}
@font-face {
font-family: 'Material Icons Round';
font-style: normal;
font-weight: 400;
src: url('./materialiconsround/v105/MaterialIconsRound.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsround/v105/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2) format('woff2'); */
src: url('./materialiconsround/v106/MaterialIconsRound.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsround/v106/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2) format('woff2'); */
}
@font-face {
font-family: 'Google Material Icons Round';
font-style: normal;
font-weight: 400;
src: url('./materialiconsround/v105/MaterialIconsRound.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsround/v105/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2) format('woff2'); */
src: url('./materialiconsround/v106/MaterialIconsRound.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconsround/v106/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2) format('woff2'); */
}
@font-face {
font-family: 'Material Icons Sharp';
font-style: normal;
font-weight: 400;
src: url('./materialiconssharp/v106/MaterialIconsSharp.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconssharp/v106/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2) format('woff2'); */
src: url('./materialiconssharp/v107/MaterialIconsSharp.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconssharp/v107/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2) format('woff2'); */
}
@font-face {
font-family: 'Google Material Icons Sharp';
font-style: normal;
font-weight: 400;
src: url('./materialiconssharp/v106/MaterialIconsSharp.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconssharp/v106/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2) format('woff2'); */
src: url('./materialiconssharp/v107/MaterialIconsSharp.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconssharp/v107/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2) format('woff2'); */
}
@font-face {
font-family: 'Material Icons Two Tone';
font-style: normal;
font-weight: 400;
src: url('./materialiconstwotone/v109/MaterialIconsTwoTone.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconstwotone/v109/hESh6WRmNCxEqUmNyh3JDeGxjVVyMg4tHGctNCu0.woff2) format('woff2'); */
src: url('./materialiconstwotone/v110/MaterialIconsTwoTone.woff2') format('woff2');
/* src: url(https://fonts.gstatic.com/s/materialiconstwotone/v110/hESh6WRmNCxEqUmNyh3JDeGxjVVyMg4tHGctNCu0.woff2) format('woff2'); */
}
.material-icons {

File diff suppressed because one or more lines are too long

View File

@ -1,7 +0,0 @@
/*! `json` grammar compiled for Highlight.js 11.5.1 */
(()=>{var e=(()=>{"use strict";return e=>({name:"JSON",contains:[{
className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{
match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,{
beginKeywords:"true false null"
},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"})
})();hljs.registerLanguage("json",e)})();

View File

@ -1,29 +0,0 @@
/*! `xml` grammar compiled for Highlight.js 11.5.1 */
(()=>{var e=(()=>{"use strict";return e=>{
const a=e.regex,n=a.concat(/[A-Z_]/,a.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),s={
className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/,
contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{
className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={
endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[s]},{
begin:/'/,end:/'/,contains:[s]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
name:"HTML, XML",
aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",
begin:/<![a-z]/,end:/>/,contains:[t,i,l,c]}]}]},e.COMMENT(/<!--/,/-->/,{
relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},s,{
className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]
},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,
keywords:{name:"style"},contains:[r],starts:{end:/<\/style>/,returnEnd:!0,
subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,
keywords:{name:"script"},contains:[r],starts:{end:/<\/script>/,returnEnd:!0,
subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/
},{className:"tag",
begin:a.concat(/</,a.lookahead(a.concat(n,a.either(/\/>/,/>/,/\s/)))),
end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:r}]},{
className:"tag",begin:a.concat(/<\//,a.lookahead(a.concat(n,/>/))),contains:[{
className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}
})();hljs.registerLanguage("xml",e)})();

View File

@ -1,4 +1,4 @@
/*! `1c` grammar compiled for Highlight.js 11.5.1 */
/*! `1c` grammar compiled for Highlight.js 11.6.0 */
(()=>{var s=(()=>{"use strict";return s=>{
const x="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]+",n="\u0434\u0430\u043b\u0435\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0435\u0441\u043b\u0438 \u0438 \u0438\u0437 \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0438\u043d\u0430\u0447\u0435\u0435\u0441\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043a\u043e\u043d\u0435\u0446\u0446\u0438\u043a\u043b\u0430 \u043d\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u0435\u0440\u0435\u043c \u043f\u043e \u043f\u043e\u043a\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0442\u043e\u0433\u0434\u0430 \u0446\u0438\u043a\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442 ",e="null \u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u043e\u0436\u044c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e",o=s.inherit(s.NUMBER_MODE),t={
className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},a={

View File

@ -1,4 +1,4 @@
/*! `abnf` grammar compiled for Highlight.js 11.5.1 */
/*! `abnf` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,s=e.COMMENT(/;/,/$/)
;return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,
keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],

View File

@ -1,4 +1,4 @@
/*! `accesslog` grammar compiled for Highlight.js 11.5.1 */
/*! `accesslog` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n=e.regex,a=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"]
;return{name:"Apache Access Log",contains:[{className:"number",

View File

@ -1,4 +1,4 @@
/*! `actionscript` grammar compiled for Highlight.js 11.5.1 */
/*! `actionscript` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const a=e.regex,t=/[a-zA-Z_$][a-zA-Z0-9_$]*/,n=a.concat(t,a.concat("(\\.",t,")*")),s={
className:"rest_arg",begin:/[.]{3}/,end:t,relevance:10};return{

View File

@ -1,4 +1,4 @@
/*! `ada` grammar compiled for Highlight.js 11.5.1 */
/*! `ada` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n="[A-Za-z](_?[A-Za-z0-9.])*",s="[]\\{\\}%#'\"",a=e.COMMENT("--","$"),r={
begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:s,contains:[{

View File

@ -1,4 +1,4 @@
/*! `angelscript` grammar compiled for Highlight.js 11.5.1 */
/*! `angelscript` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={className:"built_in",
begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"
},a={className:"symbol",begin:"[a-zA-Z0-9_]+@"},i={className:"keyword",

View File

@ -1,4 +1,4 @@
/*! `apache` grammar compiled for Highlight.js 11.5.1 */
/*! `apache` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={className:"number",
begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{
name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,

View File

@ -1,4 +1,4 @@
/*! `applescript` grammar compiled for Highlight.js 11.5.1 */
/*! `applescript` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const t=e.regex,r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i={
className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,r]

View File

@ -1,4 +1,4 @@
/*! `arcade` grammar compiled for Highlight.js 11.5.1 */
/*! `arcade` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n="[A-Za-z_][0-9A-Za-z_]*",a={
keyword:["if","for","while","var","new","function","do","return","void","else","break"],
literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],

View File

@ -1,4 +1,4 @@
/*! `arduino` grammar compiled for Highlight.js 11.5.1 */
/*! `arduino` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t={
type:["boolean","byte","word","String"],
built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],

View File

@ -1,4 +1,4 @@
/*! `armasm` grammar compiled for Highlight.js 11.5.1 */
/*! `armasm` grammar compiled for Highlight.js 11.6.0 */
(()=>{var s=(()=>{"use strict";return s=>{const e={
variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0
}),s.COMMENT("[;@]","$",{relevance:0

View File

@ -1,4 +1,4 @@
/*! `asciidoc` grammar compiled for Highlight.js 11.5.1 */
/*! `asciidoc` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a=[{
className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",
begin:n.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),

View File

@ -1,4 +1,4 @@
/*! `aspectj` grammar compiled for Highlight.js 11.5.1 */
/*! `aspectj` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n=e.regex,t=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],i=["get","set","args","call"]
;return{name:"AspectJ",keywords:t,illegal:/<\/|#/,

View File

@ -1,4 +1,4 @@
/*! `autohotkey` grammar compiled for Highlight.js 11.5.1 */
/*! `autohotkey` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a={begin:"`[\\s\\S]"};return{
name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{
keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",

View File

@ -1,4 +1,4 @@
/*! `autoit` grammar compiled for Highlight.js 11.5.1 */
/*! `autoit` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t={variants:[e.COMMENT(";","$",{
relevance:0
}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},r={

View File

@ -1,4 +1,4 @@
/*! `avrasm` grammar compiled for Highlight.js 11.5.1 */
/*! `avrasm` grammar compiled for Highlight.js 11.6.0 */
(()=>{var r=(()=>{"use strict";return r=>({name:"AVR Assembly",
case_insensitive:!0,keywords:{$pattern:"\\.?"+r.IDENT_RE,
keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",

View File

@ -1,4 +1,4 @@
/*! `awk` grammar compiled for Highlight.js 11.5.1 */
/*! `awk` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Awk",keywords:{
keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"
},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{

View File

@ -1,4 +1,4 @@
/*! `axapta` grammar compiled for Highlight.js 11.5.1 */
/*! `axapta` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t=e.UNDERSCORE_IDENT_RE,s={
keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],
built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],

View File

@ -1,4 +1,4 @@
/*! `bash` grammar compiled for Highlight.js 11.5.1 */
/*! `bash` grammar compiled for Highlight.js 11.6.0 */
(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/,
end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{
className:"variable",variants:[{

Some files were not shown because too many files have changed in this diff Show More