diff --git a/.envrc b/.envrc deleted file mode 100644 index 5d466e4..0000000 --- a/.envrc +++ /dev/null @@ -1,5 +0,0 @@ -use nix -export HACL_HOME="/home/lucas/repos/hacl-star" -export HAX_PROOF_LIBS_HOME="/home/lucas/repos/hax/latest-core/proof-libs/fstar" -export HAX_LIBS_HOME="/home/lucas/repos/hax/latest-core/hax-lib/proofs/fstar/extraction" -export FSTAR_HOME="/home/lucas/repos/hax/latest-core/proof-libs/fstar" diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index 09fc750..0000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Deploy - -on: - push: - branches: - - main - pull_request: - -jobs: - deploy: - runs-on: ubuntu-latest - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - steps: - - uses: actions/checkout@v2 - - - name: Setup mdBook - uses: peaceiris/actions-mdbook@v1 - with: - mdbook-version: 'latest' - - - run: mdbook build && mdbook build archive -d ../book/archive - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - if: github.ref == 'refs/heads/main' - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./book diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 05ff2e4..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -book -target diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..f173110 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ +This file makes sure that Github Pages doesn't process mdBook's output. diff --git a/404.html b/404.html new file mode 100644 index 0000000..eb8fb0f --- /dev/null +++ b/404.html @@ -0,0 +1,220 @@ + + + + + + Page not found - hax + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Document not found (404)

+

This URL is invalid, sorry. Please use the navigation bar or search to continue.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/FontAwesome/css/font-awesome.css b/FontAwesome/css/font-awesome.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/FontAwesome/css/font-awesome.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/FontAwesome/fonts/FontAwesome.ttf b/FontAwesome/fonts/FontAwesome.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/FontAwesome/fonts/FontAwesome.ttf differ diff --git a/FontAwesome/fonts/fontawesome-webfont.eot b/FontAwesome/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.eot differ diff --git a/FontAwesome/fonts/fontawesome-webfont.svg b/FontAwesome/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/FontAwesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FontAwesome/fonts/fontawesome-webfont.ttf b/FontAwesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.ttf differ diff --git a/FontAwesome/fonts/fontawesome-webfont.woff b/FontAwesome/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.woff differ diff --git a/FontAwesome/fonts/fontawesome-webfont.woff2 b/FontAwesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.woff2 differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f4b69a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Warning: this repository only contains generated files +The sources of the book are in https://github.com/hacspec/hax/tree/main/book +Please file issues, and push PRs to https://github.com/hacspec/hax. diff --git a/archive/.nojekyll b/archive/.nojekyll new file mode 100644 index 0000000..f173110 --- /dev/null +++ b/archive/.nojekyll @@ -0,0 +1 @@ +This file makes sure that Github Pages doesn't process mdBook's output. diff --git a/archive/404.html b/archive/404.html new file mode 100644 index 0000000..0a505bf --- /dev/null +++ b/archive/404.html @@ -0,0 +1,220 @@ + + + + + + Page not found - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Document not found (404)

+

This URL is invalid, sorry. Please use the navigation bar or search to continue.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/FontAwesome/css/font-awesome.css b/archive/FontAwesome/css/font-awesome.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/archive/FontAwesome/css/font-awesome.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/archive/FontAwesome/fonts/FontAwesome.ttf b/archive/FontAwesome/fonts/FontAwesome.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/archive/FontAwesome/fonts/FontAwesome.ttf differ diff --git a/archive/FontAwesome/fonts/fontawesome-webfont.eot b/archive/FontAwesome/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/archive/FontAwesome/fonts/fontawesome-webfont.eot differ diff --git a/archive/FontAwesome/fonts/fontawesome-webfont.svg b/archive/FontAwesome/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/archive/FontAwesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archive/FontAwesome/fonts/fontawesome-webfont.ttf b/archive/FontAwesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/archive/FontAwesome/fonts/fontawesome-webfont.ttf differ diff --git a/archive/FontAwesome/fonts/fontawesome-webfont.woff b/archive/FontAwesome/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/archive/FontAwesome/fonts/fontawesome-webfont.woff differ diff --git a/archive/FontAwesome/fonts/fontawesome-webfont.woff2 b/archive/FontAwesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/archive/FontAwesome/fonts/fontawesome-webfont.woff2 differ diff --git a/archive/ayu-highlight.css b/archive/ayu-highlight.css new file mode 100644 index 0000000..32c9432 --- /dev/null +++ b/archive/ayu-highlight.css @@ -0,0 +1,78 @@ +/* +Based off of the Ayu theme +Original by Dempfi (https://github.com/dempfi/ayu) +*/ + +.hljs { + display: block; + overflow-x: auto; + background: #191f26; + color: #e6e1cf; +} + +.hljs-comment, +.hljs-quote { + color: #5c6773; + font-style: italic; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-attr, +.hljs-regexp, +.hljs-link, +.hljs-selector-id, +.hljs-selector-class { + color: #ff7733; +} + +.hljs-number, +.hljs-meta, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #ffee99; +} + +.hljs-string, +.hljs-bullet { + color: #b8cc52; +} + +.hljs-title, +.hljs-built_in, +.hljs-section { + color: #ffb454; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-symbol { + color: #ff7733; +} + +.hljs-name { + color: #36a3d9; +} + +.hljs-tag { + color: #00568d; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-addition { + color: #91b362; +} + +.hljs-deletion { + color: #d96c75; +} diff --git a/theme/book.js b/archive/book.js similarity index 93% rename from theme/book.js rename to archive/book.js index 9fd3bef..aa12e7e 100644 --- a/theme/book.js +++ b/archive/book.js @@ -3,59 +3,6 @@ // Fix back button cache problem window.onunload = function () { }; -(() => { - console.log(1234); - for(let o of document.querySelectorAll('strong')) { - console.log(1234); - if(o.innerText != 'user-checkable') - continue; - let node = document.createElement('input'); - node.type = 'checkbox'; - node.classList.add('user-checkable-checkbox'); - o.parentElement.replaceChild(node, o); - } -})(); - -(() => { - let id = 0; - for(let fst of document.querySelectorAll('pre + pre')) { - let parent = fst.parentElement; - let rust = fst.previousElementSibling; - let w = s => `
${s}
`; - let both = w(rust.outerHTML) + w(fst.outerHTML); - parent.removeChild(rust); - - let snippets = document.createElement('div'); - snippets.classList.add('snippets'); - snippets.innerHTML = both; - - let buttons = document.createElement('div'); - id++; - buttons.classList.add('buttons'); - buttons.innerHTML = ``; - let mk_active = i => { - [snippets, buttons].map(el => - [...el.children].map((x, j) => { - x.classList[j==i ? 'remove' : 'add']('fstar-rust-snippet-hidden'); - x.classList[j==i ? 'add' : 'remove']('fstar-rust-snippet-active'); - }) - ); - }; - [...buttons.children].map((child, nth) => - (child.onclick = _ => mk_active(nth)) - ); - const RUST = 0; - mk_active(RUST); - - let wrapper = document.createElement('div'); - wrapper.classList.add('rust-fstar-wrapper'); - wrapper.appendChild(buttons); - wrapper.appendChild(snippets); - - parent.replaceChild(wrapper, fst); - } -})(); - // Global variable, shared between modules function playground_text(playground, hidden = true) { let code_block = playground.querySelector("code"); diff --git a/archive/book.toml b/archive/book.toml deleted file mode 100644 index 530d585..0000000 --- a/archive/book.toml +++ /dev/null @@ -1,9 +0,0 @@ -[book] -authors = ["Franziskus Kiefer"] -language = "en" -multilingual = false -src = "src" -title = "hacspec" - -[output.html] -mathjax-support = true diff --git a/archive/clipboard.min.js b/archive/clipboard.min.js new file mode 100644 index 0000000..02c549e --- /dev/null +++ b/archive/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.4 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n li > .user-checkable-checkbox) { - list-style-type: none; - padding: 0; - margin: 0; -} -li:has(> .user-checkable-checkbox) { - list-style-type: none; - padding: 0; - margin: 0; -} - diff --git a/theme/css/print.css b/archive/css/print.css similarity index 100% rename from theme/css/print.css rename to archive/css/print.css diff --git a/theme/css/variables.css b/archive/css/variables.css similarity index 100% rename from theme/css/variables.css rename to archive/css/variables.css diff --git a/archive/developers/compiler.html b/archive/developers/compiler.html new file mode 100644 index 0000000..b820e55 --- /dev/null +++ b/archive/developers/compiler.html @@ -0,0 +1,342 @@ + + + + + + Working on the compiler - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Working on the compiler

+

High-level architecture

+

Hacspec compiler architecture

+

The Rustspec compiler intervenes after the regular Rust typechecking, +by translating the Rust AST into a stricter hacspec AST, +yielding error messages if you're not in the subset.

+

The hacspec AST then undergoes a typechecking phase that replicates the +formal typechecking judgment of hacspec, before being compiled +to the proof backends like F* or Coq.

+

Code organization

+

The source code for the compiler is located in the language/ folder. +main.rs is the file containing the driver for the different compiler +passes.

+

Hacspec AST

+

The main file of the compiler is rustspec.rs and it contains the AST +structure.

+

Types are usually enclosed into Spanned<...> blocks that attach a location +information to an AST node, thereby providing a way to display beautiful error +message.

+

Several nodes also contain a Fillable<...> node standing for information +that is filled by the typechecking phase but that can be left to None when +building the AST.

+

Translation from Rust AST

+

This phase is contained in ast_to_rustspec.rs. The trickyness of this +translation is that it needs to be aware of certain special names contained +in the structure SpecialNames. Indeed, while the Rust AST treats the application +enum constructors like function applications, the hacspec AST considers them as +proper injection so we need to distinguish them in the Rust AST. For that, we +need to know all declared enums at this point of the program.

+

Enums and other SpecialNames are also defined in the ExternalData that +contains the signatures and types imported in crates used by the hacspec +program being compiled.

+

Name resolution

+

When the translation from Rust AST is finished, the identifiers for all +variables inside function bodies are of the following type:

+
pub enum Ident {
+    Unresolved(String),
+    Local(LocalIdent),
+    TopLevel(TopLevelIdent),
+}
+

More precisely, they are still in the Ident::Unresolved case. The compiler +pass in name_resolution.rs resolves the identifiers by linking them to local or global identifiers, +each one having a unique ID. hacspec does not feature De Bruijn variable +handling, instead relying on unique fresh IDs for differentiating local +and global variables from each other.

+

External data

+

A hacspec file can never (in principal) be considered alone, as it usually imports +at least several other crates like the hacspec standard library. These external +crates must pre-populate the typechecking context with the types and function +signatures that they define.

+

It's the job of hir_to_rustspec.rs to retrieve this data. The critical +piece of code in this file is the following:

+
let num_def_ids = crate_store.num_def_ids_untracked(*krate_num);
+let def_ids = (0..num_def_ids).into_iter().map(|id| DefId {
+    krate: *krate_num,
+    index: DefIndex::from_usize(id),
+});
+

First, we retrieve the number of exported symbols by an external crate using +num_def_ids_untracked, a function that is specifically labeled +as critical to the hacspec compiler in the Rust compiler codebase. Then, +we manufacture definition IDs for all these exported symbols, relying on the +invariant that they are numbered from 0 to the number of exported symbols +in Rust's compiled crate metadata format.

+

Then, we use those definition IDs (DefId) to query the Rust compiler +via the central TyCtxt +data structure. If the DefId corresponds to a type definition, we examine the +type definition structurally and check whether it corresponds to a hacspec-compatible +type definition. Notably, the type definitions generated by macros like array! +or nat_mod! are only seen here in their expanded version, so we have to retro-engineer +which expanded version corresponds to which macro expansion. This is a vulnerability +of the compiler since it's possible to break the abstraction of the language +by smuggling in a type not defined via a hacspec macro this way. That's why hacspec +developers should be very careful about which dependencies they import in order +to have a 100% safety guarantee.

+

For DefIds corresponding to functions, the signature of the function is analysed +and if it fits the subset of types expected by hacspec, the function is imported +along with its type in a pre-populated typechecking context.

+

Note that it is not possible any more at this point to retrieve the #[in_hacspec], +#[unsafe_hacspec], etc. attributes that would tag the external definitions, +since these attributes get erased by the Rust compiler before reaching the +compiled crates metadata.

+

Typechecking

+

The typechecking is done in typechecker.rs and follows a very regular structure, +making heavy use of immutable data structures to not mess up the various +context manipulations.

+

Note that we need to perform a full typechecking complete with method resolution +because the proof backends need very fine-grained typechecking information +to generate correct code.

+

Be careful: types often need to be de-aliased with dealias_type before +being matched on structurally. Forgetting to dealias will lead to bugs with +type aliases.

+

Proof backends

+

The different proof backends (rustspec_to_fstar.rs, etc) all enjoy a similar +structure that ought to be refactored to showcase their commonality. The backends +don't use an intermediate AST to generate the code in the proof assistant but +rather directly print code as string using the pretty +pretty-printing library. If you want to start a new proof backend, the easiest +solution is probably to copy an existing proof backend and tweak it until +you get the right result.

+

The code generation has to be fine-tuned to interface with a replica of the +hacspec standard library in the host proof assistant, whose correspondence with +the original hacspec library in Rust is part of the trusted code base. More specially, +clever solutions to encode sequences and array, as well as all the different types +of public and secret machine integers, and the interaction between the two +(seeing a double as a string of bytes) have to be implemented through proof +assistant libraries.

+

Unit tests

+

The compiler has various unit tests that are controlled trough the language/tests +files. Please enrich the unit tests bases in language-tests, +negative-language-tests and test-crate as you implement new features for +the compiler. The compiler can also be tested against all the hacspec cryptographic +specifications by running examples/typecheck_examples.sh from the root of +the repository.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/src/developers/hacspec_architecture.png b/archive/developers/hacspec_architecture.png similarity index 100% rename from archive/src/developers/hacspec_architecture.png rename to archive/developers/hacspec_architecture.png diff --git a/archive/developers/index.html b/archive/developers/index.html new file mode 100644 index 0000000..5f1ae13 --- /dev/null +++ b/archive/developers/index.html @@ -0,0 +1,232 @@ + + + + + + For Developers - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

For Developers

+

This section contains a handy guide for hacspec developers working on the +standard library or the compiler.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/elasticlunr.min.js b/archive/elasticlunr.min.js new file mode 100644 index 0000000..94b20dd --- /dev/null +++ b/archive/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.5 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o + + + + + Examples - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Examples

+

The main hacspec repository contains a set of example specifications. +In this section we pull out some interesting bits to demonstrate the hacspec +language.

+

There's also a provider that bundles the different cryptographic primitives +into a single library. +The provider implements the RustCrypto traits in order to facilitate interoperability.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/theme/favicon.png b/archive/favicon.png similarity index 100% rename from theme/favicon.png rename to archive/favicon.png diff --git a/theme/favicon.svg b/archive/favicon.svg similarity index 100% rename from theme/favicon.svg rename to archive/favicon.svg diff --git a/theme/fonts/OPEN-SANS-LICENSE.txt b/archive/fonts/OPEN-SANS-LICENSE.txt similarity index 100% rename from theme/fonts/OPEN-SANS-LICENSE.txt rename to archive/fonts/OPEN-SANS-LICENSE.txt diff --git a/theme/fonts/SOURCE-CODE-PRO-LICENSE.txt b/archive/fonts/SOURCE-CODE-PRO-LICENSE.txt similarity index 100% rename from theme/fonts/SOURCE-CODE-PRO-LICENSE.txt rename to archive/fonts/SOURCE-CODE-PRO-LICENSE.txt diff --git a/theme/fonts/fonts.css b/archive/fonts/fonts.css similarity index 100% rename from theme/fonts/fonts.css rename to archive/fonts/fonts.css diff --git a/theme/fonts/open-sans-v17-all-charsets-300.woff2 b/archive/fonts/open-sans-v17-all-charsets-300.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-300.woff2 rename to archive/fonts/open-sans-v17-all-charsets-300.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-300italic.woff2 b/archive/fonts/open-sans-v17-all-charsets-300italic.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-300italic.woff2 rename to archive/fonts/open-sans-v17-all-charsets-300italic.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-600.woff2 b/archive/fonts/open-sans-v17-all-charsets-600.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-600.woff2 rename to archive/fonts/open-sans-v17-all-charsets-600.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-600italic.woff2 b/archive/fonts/open-sans-v17-all-charsets-600italic.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-600italic.woff2 rename to archive/fonts/open-sans-v17-all-charsets-600italic.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-700.woff2 b/archive/fonts/open-sans-v17-all-charsets-700.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-700.woff2 rename to archive/fonts/open-sans-v17-all-charsets-700.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-700italic.woff2 b/archive/fonts/open-sans-v17-all-charsets-700italic.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-700italic.woff2 rename to archive/fonts/open-sans-v17-all-charsets-700italic.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-800.woff2 b/archive/fonts/open-sans-v17-all-charsets-800.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-800.woff2 rename to archive/fonts/open-sans-v17-all-charsets-800.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-800italic.woff2 b/archive/fonts/open-sans-v17-all-charsets-800italic.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-800italic.woff2 rename to archive/fonts/open-sans-v17-all-charsets-800italic.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-italic.woff2 b/archive/fonts/open-sans-v17-all-charsets-italic.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-italic.woff2 rename to archive/fonts/open-sans-v17-all-charsets-italic.woff2 diff --git a/theme/fonts/open-sans-v17-all-charsets-regular.woff2 b/archive/fonts/open-sans-v17-all-charsets-regular.woff2 similarity index 100% rename from theme/fonts/open-sans-v17-all-charsets-regular.woff2 rename to archive/fonts/open-sans-v17-all-charsets-regular.woff2 diff --git a/theme/fonts/source-code-pro-v11-all-charsets-500.woff2 b/archive/fonts/source-code-pro-v11-all-charsets-500.woff2 similarity index 100% rename from theme/fonts/source-code-pro-v11-all-charsets-500.woff2 rename to archive/fonts/source-code-pro-v11-all-charsets-500.woff2 diff --git a/theme/highlight.css b/archive/highlight.css similarity index 100% rename from theme/highlight.css rename to archive/highlight.css diff --git a/theme/highlight.jsold b/archive/highlight.js similarity index 100% rename from theme/highlight.jsold rename to archive/highlight.js diff --git a/archive/index.html b/archive/index.html new file mode 100644 index 0000000..8ac450e --- /dev/null +++ b/archive/index.html @@ -0,0 +1,243 @@ + + + + + + Introduction - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Introduction

+

hacspec is a specification language for crypto primitives, protocols, and more. +It is a subset of the Rust programming language, focused on functional +programming and it avoids the use of mutable state as much as possible.

+

This book gives an overview of:

+ +

For a quick introduction you can also check out these slides from April 2021. +An in-depth technical report is also available, and serves as a reference +for the language formalization.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/language/core.html b/archive/language/core.html new file mode 100644 index 0000000..1d9e2f5 --- /dev/null +++ b/archive/language/core.html @@ -0,0 +1,320 @@ + + + + + + Core - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

The core of hacspec

+

Crates and modules

+

hacspec only supports single-module crates, due to a technical limitation +of the Rust compiler. Inside this single file, a hacspec program shall always +start with:

+
use hacspec_lib::*;
+
+// Optional: dependencies on other crates containing hacspec programs
+use other_hacpsec_crate::*;
+

No other form of use is allowed in hacspec, because allowing Rust's +complex import patterns would increase the complexity of the hacspec compiler +and conflict with the module systems of most proof assistants.

+

Functions

+

hacspec is a functional language, and only supports the declaration of +top-level functions:

+
fn hacspec_function(x: bool) -> () {
+    ...
+}
+

The functions can take any number of arguments, and may return a value (or not). +Note that recursive functions are forbidden in hacspec.

+

The control flow inside hacspec functions is limited, as return statements +are forbidden.

+

Basic Types

+

hacspec supports all the Rust primitive types: integers (signed and unsigned), +booleans, unit, tuples. hacspec possesses some support for generic +types, but only for primitive types defined by the language creators, and +not for user-defined types.

+

Type aliases are allowed in hacspec:

+
type OneTypeAlias = u32;
+

Borrows

+

hacspec forbids mutable borrows in all places. Immutable borrows are allowed +in hacspec, but only for function arguments. Indeed, you can declare a function +argument as immutably borrowed:

+
fn hacspec_function(arg: &Seq<u8>) {
+    ...
+}
+

You can also immutably borrow a value at the call site of a function:

+
hacspec_function(&Seq::<u8>::new(64))
+

In particular, return types cannot contain references, and the same is true +for types inside tuples or any data structure.

+

Constants

+

hacspec allows the declaration of constants:

+
const ONE_CONST : bool = false;
+

Assignments

+

Inside a function body, hacspec allows regular Rust let-bindings:

+
let x = ...;
+

hacspec also allows mutable let bindings, and subsequent reassignments:

+
let mut x = ...;
+...
+x = ...;
+

This allowing of mutable variable might come as a contradiction to hacspec's +philosophy of forbidding mutable state. But in fact, mutable local variables in +hacspec can be translated to a completely side-effect free form with a state-passing +like monadic structure.

+

Left-hand sides of assignments support destructuring, which is currently the +only way to access the members of a tuple:

+
let (x, y) = z;
+

Loops

+

Looping is severely restricted in hacspec compared to Rust, as the only accepted form is +for looping with a counter over an integer range:

+
for i in low..hi {
+    ... // The block can use i and reassign mutable variables
+}
+

The motivation for this restriction is to ease the proof of termination of +loops. break or continue statements are forbidden.

+

Conditionals

+

hacspec allows statement-like conditionals as well as expression-like +conditionals:

+
if cond1 {
+    ... // the block can modify mutable variables
+} else { // else block is optional here
+    ...
+}
+let x = if cond2 { ... } else { ... };
+

Statements and expressions

+

In regular Rust, statements and expressions can be mixed together freely. +This not the case in hacspec that imposes a strict precedence of statements +over expressions. For instance, the following code is not allowed in +hacspec:

+
let x = if cond {
+    y = true; // ERROR: the reassignment is a statement, which cannot
+              // be contained in the expression to which x is assigned.
+    3
+} else {
+    4
+};
+

Visibility

+

hacspec allows for both pub and non-pub versions of item declarations +(pub, non-pub, etc). You simply have to respect the Rust visibility rules. Note +that these visibility distinctions might not be translated in the proof +backends.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/language/enums.html b/archive/language/enums.html new file mode 100644 index 0000000..93be503 --- /dev/null +++ b/archive/language/enums.html @@ -0,0 +1,269 @@ + + + + + + Structs and enums - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Structs and enums

+

hacspec also supports user-defined structs and enums with some restrictions.

+

Structs

+

The only form of struct declaration currently allowed in hacspec is:

+
struct Foo(u32, Seq<u32>);
+

The struct thus declared can have one or more components. This form of struct +declaration effectively corresponds to a single-case enum, and is implemented +as such. Struct components can be accessed through let-binding destructuring:

+
let Foo(x, y) = z;
+

Note that you can't store borrowed types inside hacspec structs, hence there is no +need for lifetime variables.

+

Enums

+

hacspec supports very restricted enum declarations:

+
enum Foo {
+    CaseA,
+    CaseB(u16),
+    CaseC(Seq<bool>, u64)
+}
+

These declaration don't support the basic Rust features such as C-style +union declarations with assignments for each case.

+

Enumeration values can be pattern-matched in an expression:

+
match x {
+    Foo::CaseA => ...,
+    Foo::CaseB(y) => ...,
+    Foo::CaseC(y,z) => ...
+}
+

Note that you can't store borrowed types inside hacspec enums, hence there is no +need for lifetime variables.

+

Option and Result

+

User-defined structs and enums presented above don't support generic type +parameters yet. However, the built-in enums Option<T> and Result<T,U> +support type parameters. Those type parameters have to be explicitly declared +each time, as hacspec does not currently support type inference:

+
match x {
+    Result::<Seq<u8>, bool>::Ok(y) => ...,
+    Result::<Seq<u8>, bool>::Err(err) => ...
+}
+

Such type parameter declaration is cumbersome; as a workaround we advise +to declare a type alias as such:

+
type MyResult = Result::<Seq<u8>, bool>;
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/language/errors.html b/archive/language/errors.html new file mode 100644 index 0000000..861bcf8 --- /dev/null +++ b/archive/language/errors.html @@ -0,0 +1,239 @@ + + + + + + Error handling - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Error handling

+

Error handling in Rust is done via the Result type (see the structs and +enums section). But on top of explicit pattern-matching, hacspec also +supports the popular ? operator to quickly perform an early return and +propagate the error case upwards.

+

? is only allowed at the very end of an expression in a let-binding or +reassignment statement:

+
let x = foo(true)?; // GOOD
+let y = foo(bar(0)?); // ERROR: the ? is not at the end of the statement
+

Currently, ? is the only way to return early in a hacspec function.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/language/index.html b/archive/language/index.html new file mode 100644 index 0000000..a56335a --- /dev/null +++ b/archive/language/index.html @@ -0,0 +1,243 @@ + + + + + + The hacspec language - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

The hacspec language

+

This section gives an informal description of the hacspec language, whose +goal is to provide hands-on documentation for users of the language. For +a formal specification of the semantics of the language, please refer +to the technical report.

+

hacspec is a domain-specific language embedded inside Rust. This means that +all correct hacspec programs are correct Rust programs: you can use +the usual Rust tooling for working on your hacspec developments. However, +hacspec is a strict subset of Rust: this means that some features of Rust +are forbidden inside hacspec. The goal of restricting the expressiveness of +the language is twofold: first, help domain experts such as cryptographers +convey their specifications in a fashion that should help them avoid +mistakes; second, provide a way for Rust programmers to interact with theorem +provers such as F* or Coq.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/language/seq.html b/archive/language/seq.html new file mode 100644 index 0000000..637660f --- /dev/null +++ b/archive/language/seq.html @@ -0,0 +1,251 @@ + + + + + + Sequences and arrays - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Sequences and arrays

+

Sequences

+

The staple Vec type is forbidden in hacspec. Instead, you have to use the +type Seq, which is implemented as a wrapper around Vec.

+

The most notable differences between Seq and Vec is that Seq is not +resizable, and does not support push and pop operations. Instead, the +final length of the seq has to be provided at creation time. See the +hacspec standard library documentation for more details.

+

Seq is a built-in generic type that always has to be indexed by the content of the +cells: Seq<u8>, etc.

+

Arrays

+

The native Rust array types [<type of contents>, <size>] is forbidden in +hacspec. Instead, you have to declare nominally at the top-level new array types +for a specific cell content and size with:

+
array!(FooArray, u8, 64);
+// This declares type FooArray as an array of u8 of size 64
+bytes!(BarArray, 64);
+// bytes! is a specialized version of array! with secret bytes
+array!(BazArray, u8, 64, type_for_indexes:BazIndex);
+// The additional argument type_for_indexes defines an alias of usize
+// intended to spot which usizes are used to index BazArray (useful for
+// verification)
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/language/syntax.html b/archive/language/syntax.html new file mode 100644 index 0000000..1a84bdb --- /dev/null +++ b/archive/language/syntax.html @@ -0,0 +1,285 @@ + + + + + + Syntax - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Syntax

+
P ::= [i]\*                     Program items
+i ::= array!(t, μ, n)           Array type declaration where n is a natural number
+    | nat_mod!(t, n)            Modular integer
+    | fn f([d]+) -> μ b         Function declaration
+    | type t = enum { [c(μ)]+ } Enum declaration (with constructors)
+    | type t = struct([μ]+)     Struct declaration (without named fields)
+    | const x: μ = e            Constant declaration
+    | use crate::*              External crate import
+    | use mod::*                Internal module import
+d ::= x: τ                      Function argument
+    | mut x: τ                  Mutable function argument
+μ ::= unit|bool|u8|U8|i8|I8...  Base types
+    | Seq<μ>                    Sequence
+    | String                    Strings
+    | ([μ]+)                    Tuple
+    | unit                      Unit type
+    | t                         Named type
+τ ::= μ                         Plain type
+    | &μ                        Immutable reference
+b ::= {[s;]+}                   Block
+p ::= x                         Variable pattern
+    | ([p]+)                    Tuple pattern
+    | t (p)                     Struct constructor pattern
+    | _                         Wildcard pattern
+s ::= let p: τ = e              Let binding
+    | let mut p: τ = e          Mutable let binding
+    | x = e                     Variable reassignment
+    | x = e?                    Variable reassignment with result/option catching
+    | let p: τ = e?             Let binding with result/option catching
+    | if e then b (else b)      Conditional statements
+    | c(e)                      Enum injection
+    | match e { [c(p) => e]+ }  Pattern matching
+    | for x in e..e b           For loop (integers only)
+    | e                         Return expression
+    | b                         Statement block
+e ::= ()|true|false             Unit and boolean literals
+    | n                         Integer literal
+    | U8(e)|I8(e)|...           Secret integer classification
+    | "..."                     String literal
+    | t([e]+)                   Array literal
+    | e as μ                    Integer casting
+    | x                         Variable
+    | ()                        Unit
+    | f([a]+)                   Function call
+    | if e then e else e        Conditional expression
+    | e ⊙ e                     Binary operations
+    | ⊘ e                       Unary operations
+    | ([e]+)                    Tuple constructor
+    | x[e]                      Array or sequence index
+a ::= e                         Linear argument
+    | &e                        Call-site borrowing
+⊙ ::= + | - | * | / | &&
+    | || | == | != | > | <
+⊘ ::= - | ~
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/mark.min.js b/archive/mark.min.js new file mode 100644 index 0000000..1636231 --- /dev/null +++ b/archive/mark.min.js @@ -0,0 +1,7 @@ +/*!*************************************************** +* mark.js v8.11.1 +* https://markjs.io/ +* Copyright (c) 2014–2018, Julian Kühnel +* Released under the MIT license https://git.io/vwTVl +*****************************************************/ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Mark=t()}(this,function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=i,this.iframesTimeout=o}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var i=e.contentWindow;if(r=i.document,!i||!r)throw new Error("iframe inaccessible")}catch(e){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,i=!1,o=null,a=function a(){if(!i){i=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener("load",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener("load",a),o=setTimeout(a,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector("html"),function(){--r||t()})},function(e){e||t()})}},{key:"forEachIframe",value:function(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll("iframe"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&o(c)};s||u(),a.forEach(function(t){e.matches(t,i.exclude)?u():i.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var i=!1,o=!1;return r.forEach(function(e,t){e.val===n&&(i=t,o=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==i||o?!1===i||o||(r[i].handled=!0):r.push({val:n,handled:!0}),!0):(!1===i&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var i=this;e.forEach(function(e){e.handled||i.getIframeContents(e.val,function(e){i.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:"iterateThroughNodes",value:function(e,t,n,r,i){for(var o,a=this,s=this.createIterator(t,e,r),c=[],u=[],l=void 0,h=void 0;void 0,o=a.getIteratorNode(s),h=o.prevNode,l=o.node;)this.iframes&&this.forEachIframe(t,function(e){return a.checkIframeFilter(l,h,e,c)},function(t){a.createInstanceOnIframe(t).forEachNode(e,function(e){return u.push(e)},r)}),u.push(l);u.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(c,e,n,r),i()}},{key:"forEachNode",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),a=o.length;a||i(),o.forEach(function(o){var s=function(){r.iterateThroughNodes(e,o,t,n,function(){--a<=0&&i()})};r.iframes?r.waitForIframes(o,s):s()})}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var i=!1;return n.every(function(t){return!r.call(e,t)||(i=!0,!1)}),i}return!1}}]),e}(),o=function(){function e(n){t(this,e),this.opt=r({},{diacritics:!0,synonyms:{},accuracy:"partially",caseSensitive:!1,ignoreJoiners:!1,ignorePunctuation:[],wildcards:"disabled"},n)}return n(e,[{key:"create",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),new RegExp(e,"gm"+(this.opt.caseSensitive?"":"i"))}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],a="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);""!==a&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(a)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynonyms(a)+"|"+this.processSynonyms(s)+")"+r))}return e}},{key:"processSynonyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,function(e){return"\\"===e.charAt(0)?"?":""})).replace(/(?:\\)*\*/g,function(e){return"\\"===e.charAt(0)?"*":""})}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"})}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"],r=[];return e.split("").forEach(function(i){n.every(function(n){if(-1!==n.indexOf(i)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0})}),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n=this.opt.accuracy,r="string"==typeof n?n:n.value,i="";switch(("string"==typeof n?[]:n.limiters).forEach(function(e){i+="|"+t.escapeStr(e)}),r){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(" ").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var i=t.callNoMatchOnInvalidRanges(e,r),o=i.start,a=i.end;i.valid&&(e.start=o,e.length=a-o,n.push(e),r=a)}),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,i=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?i=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:i}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,i=!0,o=n.length,a=t-o,s=parseInt(e.start,10)-a;return(r=(s=s>o?o:s)+parseInt(e.length,10))>o&&(r=o,this.log("End range automatically set to the max value of "+o)),s<0||r-s<0||s>o||r>o?(i=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(i=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:i}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:"matchesExclude",value:function(e){return i.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",i=e.splitText(t),o=i.splitText(n-t),a=document.createElement(r);return a.setAttribute("data-markjs","true"),this.opt.className&&a.setAttribute("class",this.opt.className),a.textContent=i.textContent,i.parentNode.replaceChild(a,i),o}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,i){var o=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=o.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,i(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:"wrapGroups",value:function(e,t,n,r){return r((e=this.wrapRangeInTextNode(e,t,t+n)).previousSibling),e}},{key:"separateGroups",value:function(e,t,n,r,i){for(var o=t.length,a=1;a-1&&r(t[a],e)&&(e=this.wrapGroups(e,s,t[a].length,i))}return e}},{key:"wrapMatches",value:function(e,t,n,r,i){var o=this,a=0===t?0:t+1;this.getTextNodes(function(t){t.nodes.forEach(function(t){t=t.node;for(var i=void 0;null!==(i=e.exec(t.textContent))&&""!==i[a];){if(o.opt.separateGroups)t=o.separateGroups(t,i,a,n,r);else{if(!n(i[a],t))continue;var s=i.index;if(0!==a)for(var c=1;c + + + + + Contributors - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Contributors

+

A list of contributors to the hacspec project.

+ +

If you feel you're missing from this list, feel free to add yourself in a PR.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/print.html b/archive/print.html new file mode 100644 index 0000000..084422a --- /dev/null +++ b/archive/print.html @@ -0,0 +1,789 @@ + + + + + + hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Introduction

+

hacspec is a specification language for crypto primitives, protocols, and more. +It is a subset of the Rust programming language, focused on functional +programming and it avoids the use of mutable state as much as possible.

+

This book gives an overview of:

+ +

For a quick introduction you can also check out these slides from April 2021. +An in-depth technical report is also available, and serves as a reference +for the language formalization.

+

The hacspec language

+

This section gives an informal description of the hacspec language, whose +goal is to provide hands-on documentation for users of the language. For +a formal specification of the semantics of the language, please refer +to the technical report.

+

hacspec is a domain-specific language embedded inside Rust. This means that +all correct hacspec programs are correct Rust programs: you can use +the usual Rust tooling for working on your hacspec developments. However, +hacspec is a strict subset of Rust: this means that some features of Rust +are forbidden inside hacspec. The goal of restricting the expressiveness of +the language is twofold: first, help domain experts such as cryptographers +convey their specifications in a fashion that should help them avoid +mistakes; second, provide a way for Rust programmers to interact with theorem +provers such as F* or Coq.

+

Syntax

+
P ::= [i]\*                     Program items
+i ::= array!(t, μ, n)           Array type declaration where n is a natural number
+    | nat_mod!(t, n)            Modular integer
+    | fn f([d]+) -> μ b         Function declaration
+    | type t = enum { [c(μ)]+ } Enum declaration (with constructors)
+    | type t = struct([μ]+)     Struct declaration (without named fields)
+    | const x: μ = e            Constant declaration
+    | use crate::*              External crate import
+    | use mod::*                Internal module import
+d ::= x: τ                      Function argument
+    | mut x: τ                  Mutable function argument
+μ ::= unit|bool|u8|U8|i8|I8...  Base types
+    | Seq<μ>                    Sequence
+    | String                    Strings
+    | ([μ]+)                    Tuple
+    | unit                      Unit type
+    | t                         Named type
+τ ::= μ                         Plain type
+    | &μ                        Immutable reference
+b ::= {[s;]+}                   Block
+p ::= x                         Variable pattern
+    | ([p]+)                    Tuple pattern
+    | t (p)                     Struct constructor pattern
+    | _                         Wildcard pattern
+s ::= let p: τ = e              Let binding
+    | let mut p: τ = e          Mutable let binding
+    | x = e                     Variable reassignment
+    | x = e?                    Variable reassignment with result/option catching
+    | let p: τ = e?             Let binding with result/option catching
+    | if e then b (else b)      Conditional statements
+    | c(e)                      Enum injection
+    | match e { [c(p) => e]+ }  Pattern matching
+    | for x in e..e b           For loop (integers only)
+    | e                         Return expression
+    | b                         Statement block
+e ::= ()|true|false             Unit and boolean literals
+    | n                         Integer literal
+    | U8(e)|I8(e)|...           Secret integer classification
+    | "..."                     String literal
+    | t([e]+)                   Array literal
+    | e as μ                    Integer casting
+    | x                         Variable
+    | ()                        Unit
+    | f([a]+)                   Function call
+    | if e then e else e        Conditional expression
+    | e ⊙ e                     Binary operations
+    | ⊘ e                       Unary operations
+    | ([e]+)                    Tuple constructor
+    | x[e]                      Array or sequence index
+a ::= e                         Linear argument
+    | &e                        Call-site borrowing
+⊙ ::= + | - | * | / | &&
+    | || | == | != | > | <
+⊘ ::= - | ~
+
+

The core of hacspec

+

Crates and modules

+

hacspec only supports single-module crates, due to a technical limitation +of the Rust compiler. Inside this single file, a hacspec program shall always +start with:

+
use hacspec_lib::*;
+
+// Optional: dependencies on other crates containing hacspec programs
+use other_hacpsec_crate::*;
+

No other form of use is allowed in hacspec, because allowing Rust's +complex import patterns would increase the complexity of the hacspec compiler +and conflict with the module systems of most proof assistants.

+

Functions

+

hacspec is a functional language, and only supports the declaration of +top-level functions:

+
fn hacspec_function(x: bool) -> () {
+    ...
+}
+

The functions can take any number of arguments, and may return a value (or not). +Note that recursive functions are forbidden in hacspec.

+

The control flow inside hacspec functions is limited, as return statements +are forbidden.

+

Basic Types

+

hacspec supports all the Rust primitive types: integers (signed and unsigned), +booleans, unit, tuples. hacspec possesses some support for generic +types, but only for primitive types defined by the language creators, and +not for user-defined types.

+

Type aliases are allowed in hacspec:

+
type OneTypeAlias = u32;
+

Borrows

+

hacspec forbids mutable borrows in all places. Immutable borrows are allowed +in hacspec, but only for function arguments. Indeed, you can declare a function +argument as immutably borrowed:

+
fn hacspec_function(arg: &Seq<u8>) {
+    ...
+}
+

You can also immutably borrow a value at the call site of a function:

+
hacspec_function(&Seq::<u8>::new(64))
+

In particular, return types cannot contain references, and the same is true +for types inside tuples or any data structure.

+

Constants

+

hacspec allows the declaration of constants:

+
const ONE_CONST : bool = false;
+

Assignments

+

Inside a function body, hacspec allows regular Rust let-bindings:

+
let x = ...;
+

hacspec also allows mutable let bindings, and subsequent reassignments:

+
let mut x = ...;
+...
+x = ...;
+

This allowing of mutable variable might come as a contradiction to hacspec's +philosophy of forbidding mutable state. But in fact, mutable local variables in +hacspec can be translated to a completely side-effect free form with a state-passing +like monadic structure.

+

Left-hand sides of assignments support destructuring, which is currently the +only way to access the members of a tuple:

+
let (x, y) = z;
+

Loops

+

Looping is severely restricted in hacspec compared to Rust, as the only accepted form is +for looping with a counter over an integer range:

+
for i in low..hi {
+    ... // The block can use i and reassign mutable variables
+}
+

The motivation for this restriction is to ease the proof of termination of +loops. break or continue statements are forbidden.

+

Conditionals

+

hacspec allows statement-like conditionals as well as expression-like +conditionals:

+
if cond1 {
+    ... // the block can modify mutable variables
+} else { // else block is optional here
+    ...
+}
+let x = if cond2 { ... } else { ... };
+

Statements and expressions

+

In regular Rust, statements and expressions can be mixed together freely. +This not the case in hacspec that imposes a strict precedence of statements +over expressions. For instance, the following code is not allowed in +hacspec:

+
let x = if cond {
+    y = true; // ERROR: the reassignment is a statement, which cannot
+              // be contained in the expression to which x is assigned.
+    3
+} else {
+    4
+};
+

Visibility

+

hacspec allows for both pub and non-pub versions of item declarations +(pub, non-pub, etc). You simply have to respect the Rust visibility rules. Note +that these visibility distinctions might not be translated in the proof +backends.

+

Sequences and arrays

+

Sequences

+

The staple Vec type is forbidden in hacspec. Instead, you have to use the +type Seq, which is implemented as a wrapper around Vec.

+

The most notable differences between Seq and Vec is that Seq is not +resizable, and does not support push and pop operations. Instead, the +final length of the seq has to be provided at creation time. See the +hacspec standard library documentation for more details.

+

Seq is a built-in generic type that always has to be indexed by the content of the +cells: Seq<u8>, etc.

+

Arrays

+

The native Rust array types [<type of contents>, <size>] is forbidden in +hacspec. Instead, you have to declare nominally at the top-level new array types +for a specific cell content and size with:

+
array!(FooArray, u8, 64);
+// This declares type FooArray as an array of u8 of size 64
+bytes!(BarArray, 64);
+// bytes! is a specialized version of array! with secret bytes
+array!(BazArray, u8, 64, type_for_indexes:BazIndex);
+// The additional argument type_for_indexes defines an alias of usize
+// intended to spot which usizes are used to index BazArray (useful for
+// verification)
+

Structs and enums

+

hacspec also supports user-defined structs and enums with some restrictions.

+

Structs

+

The only form of struct declaration currently allowed in hacspec is:

+
struct Foo(u32, Seq<u32>);
+

The struct thus declared can have one or more components. This form of struct +declaration effectively corresponds to a single-case enum, and is implemented +as such. Struct components can be accessed through let-binding destructuring:

+
let Foo(x, y) = z;
+

Note that you can't store borrowed types inside hacspec structs, hence there is no +need for lifetime variables.

+

Enums

+

hacspec supports very restricted enum declarations:

+
enum Foo {
+    CaseA,
+    CaseB(u16),
+    CaseC(Seq<bool>, u64)
+}
+

These declaration don't support the basic Rust features such as C-style +union declarations with assignments for each case.

+

Enumeration values can be pattern-matched in an expression:

+
match x {
+    Foo::CaseA => ...,
+    Foo::CaseB(y) => ...,
+    Foo::CaseC(y,z) => ...
+}
+

Note that you can't store borrowed types inside hacspec enums, hence there is no +need for lifetime variables.

+

Option and Result

+

User-defined structs and enums presented above don't support generic type +parameters yet. However, the built-in enums Option<T> and Result<T,U> +support type parameters. Those type parameters have to be explicitly declared +each time, as hacspec does not currently support type inference:

+
match x {
+    Result::<Seq<u8>, bool>::Ok(y) => ...,
+    Result::<Seq<u8>, bool>::Err(err) => ...
+}
+

Such type parameter declaration is cumbersome; as a workaround we advise +to declare a type alias as such:

+
type MyResult = Result::<Seq<u8>, bool>;
+

Error handling

+

Error handling in Rust is done via the Result type (see the structs and +enums section). But on top of explicit pattern-matching, hacspec also +supports the popular ? operator to quickly perform an early return and +propagate the error case upwards.

+

? is only allowed at the very end of an expression in a let-binding or +reassignment statement:

+
let x = foo(true)?; // GOOD
+let y = foo(bar(0)?); // ERROR: the ? is not at the end of the statement
+

Currently, ? is the only way to return early in a hacspec function.

+

The hacspec std library

+

The hacspec standard library contains a host of functions, type generators +and methods that define the base objects manipulated in classic cryptographic +primitives.

+

Methods in the standard library can be divided into three categories:

+
    +
  1. The not_hacspec methods whose signature and body does not belong to the +hacspec fragment of Rust. They should not be used in hacspec code, but can +be used as helpers for e.g. testing.
  2. +
  3. The unsafe_hacspec methods whose signature belongs to hacspec but not +the body. These methods can be used in hacspec programs but their body +is part of the trusted codebase.
  4. +
  5. The in_hacspec methods whose signatures and bodies belong to the +hacspec fragment of Rust. These can be used safely in hacspec programs.
  6. +
+

Arithmetic

+

hacspec overloads the arithmetic operators for a wide variety of types +corresponding to mathematical values mentioned in cryptographic specifications.

+

The Numeric trait

+

All of these types implement the Numeric trait defined by the hacspec standard +library. The arithmetic operators work for all kinds of integers, but also +arrays and sequences (point-wise operations).

+

Note that the list of types implementing Numeric is hardcoded in the +hacspec compiler, and as of this day cannot be extended by the user.

+

While the Rust compiler can infer the type of integer literals automatically, +this feature is not implemented by the hacspec compiler:

+
let w: u32 = 0; // ERROR: an integer without a suffix will have type usize
+let x: u64 = 0x64265u64; // GOOD
+let y: u64 = 4u64; // GOOD
+
+

Public and secret integers

+

One of hacspec's goal is to enable users to quickly check whether their +application does not obviously break the constant-time guarantee. +Certain processor instructions take more or less time to complete depending +on their inputs, which can cause secret leakage and break the security of +an application. Hence, hacspec offers for each type of integer (u8, u32, etc.) +a mirror secret integer type (U8, U32, etc.) for which operations +that break constant-timedness are forbidden.

+

This public/private distinction can be found at a lot of places in the standard +library, and is made to forbid functions and data structures from leaking secrets.

+

Conversions between public and secret integers are restricted to two functions: +classify and declassify.

+

Abstract integers

+

Some cryptographic specifications talk about modular arithmetic in large +fields, whose size overflows even u128. To ease the expression of such +specifications, hacspec offers wrapper types around BigInt that can be +declared using the following API:

+
abstract_nat_mod!(
+    NameOfModularInts,
+    NameOfUnderlyingByteRepresentation,
+    256, // Number of bits for the representation of the big integer,
+    "ffffffffffffffff00000000000065442", // Hex representation of the modulo value as hex
+)
+
+abstract_public_nat_mod!(
+    ... // Public version of above
+)
+

Integers as bytes

+

It is often useful to view an integer as a sequence of bytes that can be +manipulated individually. The hacspec standard library provides a number +of function to translate back and forth from integer to sequence of bytes:

+
pub fn u16_to_le_bytes(x: u16) -> u16Word;
+
+pub fn u16_from_le_bytes(s: u16Word) -> u16;
+
+pub fn U64_to_be_bytes(x: U64) -> U64Word;
+
+pub fn U64_from_be_bytes(s: U64Word) -> U64;
+
+...
+

Sequence and array operations

+

Operations common to sequences and arrays

+

Base traits

+

Some operations are common to both sequences and arrays +by design, and can be used as the interoperability base between the two types +of collections. These operations are the following:

+
    +
  • len: gives the length of an array or sequence;
  • +
  • iter: iterates over the content of the array or sequence +(unsafe in hacspec but can be used for implementing primitives)
  • +
  • create: creates a sequence or array and initializes the elements to the +default value (0 for arithmetic types);
  • +
  • update_slice, update and update_start: produce a new sequence or array +with modified contents.
  • +
+

Both sequences and arrays implement indexing with any type of unsigned public +integer.

+

Chunking

+

Both arrays and sequences support chunking with methods like:

+
    +
  • num_chunks and num_exact_chunks (whole or partial blocks);
  • +
  • get_chunk, get_exact_chunk and get_remainder_chunk;
  • +
  • set_chunk and set_exact_chunk.
  • +
+

The read operations borrow the sequence or array, but the write operations +create a new sequence or array.

+

Conversions

+

Sequences and arrays can be created from other types via methods like:

+
    +
  • from_public_slice and from_slice;
  • +
  • from_vec and from_native_slice;
  • +
  • from_public_seq and from_seq (to convert a seq into an array of the correct size);
  • +
  • from_string and from_hex for byte or hex strings (hex only for u8 sequences and arrays).
  • +
+

Secrecy

+

The methods prefixed by public performs an element-wise classification of the +data under the hood.

+

Ownage

+

Some methods have two versions: an owned and a non-owned version, depending +on whether the self argument is consumed or not by the method. This distinction +is useful to avoid unnecessary copies and thus be more performant.

+

Array-specific operations

+

Since array length is known statically, new does not take any argument, +same as length. slices of arrays become Seq.

+

Sequence-specific operations

+

Sequences can be extended (by creating a new sequence under the hood) with +push or concat. Sequences can also be sliced with slice.

+

Examples

+

The main hacspec repository contains a set of example specifications. +In this section we pull out some interesting bits to demonstrate the hacspec +language.

+

There's also a provider that bundles the different cryptographic primitives +into a single library. +The provider implements the RustCrypto traits in order to facilitate interoperability.

+

Usage

+

Specifications

+

Verification

+

Coq

+

QuickCheck / QuickChick

+

You can test your hacspec code using QuickCheck (a Rust library for randomized property-based testing), by simply implementing quickcheck::Arbitrary for the type you want to generate tests for. For example:

+
impl Arbitrary for Fp {
+    fn arbitrary(g: &mut Gen) -> Fp {
+        let mut a: [u64; 6] = [0; 6];
+        for i in 0..6 {
+            a[i] = u64::arbitrary(g);
+        }
+        let mut b: [u8; 48] = [0; 48];
+        for i in 0..6 {
+            let val: u64 = a[i];
+            b[(i*8)..((i+1)*8)].copy_from_slice(&(val.to_le_bytes()));
+        }
+        Fp::from_byte_seq_le(Seq::<U8>::from_public_slice(&b))
+    }
+}
+

then you can use the quickcheck attribute, to make QuickCheck do property based testing for this function:

+
#[cfg(test)]
+#[quickcheck] //Using the fp arbitraty implementation from above to generate fp2 elements.
+fn test_fp2_prop_add_neg(a: Fp2) -> bool {
+    let b = fp2neg(a);
+    fp2fromfp(Fp::ZERO()) == fp2add(a, b)
+}
+

which will run when you do cargo test. If you then add the tag #[cfg(proof)] and export to Coq,

+
cargo hacspec -o coq/src/<output_file_name>.v <input_crate_name>
+
+

then you get corresponding QuickChick test,

+
Definition test_fp2_prop_add_neg (a_320 : fp2) : bool :=
+  let b_321 :=
+    fp2neg (a_320) in
+  (fp2fromfp (nat_mod_zero )) =.? (fp2add (a_320) (b_321)).
+
+QuickChick (forAll g_fp2 (fun a_320 : fp2 =>test_fp2_prop_add_neg a_320)).
+
+

and generators will be constructed for the types automatically as,

+
Instance show_fp : Show (fp) := Build_Show (fp) (fun x => show (GZnZ.val _ x)).
+Definition g_fp : G (fp) := @bindGen Z (fp) (arbitrary) (fun x => returnGen (@Z_in_nat_mod _ x)).
+Instance gen_fp : Gen (fp) := Build_Gen fp g_fp.
+
+

which you can then run through coq in the folder coq/

+
coqc -R src/ Hacspec src/<output_file_name>.v
+
+

Make sure you run:

+
coqc -R src/ Hacspec src/MachineIntegers.v
+coqc -R src/ Hacspec src/Lib.v
+
+

or make to generate the .vo files used by <output_file_name>.v.

+

For more information:

+ +

Test Vectors

+

For Developers

+

This section contains a handy guide for hacspec developers working on the +standard library or the compiler.

+

Working on the compiler

+

High-level architecture

+

Hacspec compiler architecture

+

The Rustspec compiler intervenes after the regular Rust typechecking, +by translating the Rust AST into a stricter hacspec AST, +yielding error messages if you're not in the subset.

+

The hacspec AST then undergoes a typechecking phase that replicates the +formal typechecking judgment of hacspec, before being compiled +to the proof backends like F* or Coq.

+

Code organization

+

The source code for the compiler is located in the language/ folder. +main.rs is the file containing the driver for the different compiler +passes.

+

Hacspec AST

+

The main file of the compiler is rustspec.rs and it contains the AST +structure.

+

Types are usually enclosed into Spanned<...> blocks that attach a location +information to an AST node, thereby providing a way to display beautiful error +message.

+

Several nodes also contain a Fillable<...> node standing for information +that is filled by the typechecking phase but that can be left to None when +building the AST.

+

Translation from Rust AST

+

This phase is contained in ast_to_rustspec.rs. The trickyness of this +translation is that it needs to be aware of certain special names contained +in the structure SpecialNames. Indeed, while the Rust AST treats the application +enum constructors like function applications, the hacspec AST considers them as +proper injection so we need to distinguish them in the Rust AST. For that, we +need to know all declared enums at this point of the program.

+

Enums and other SpecialNames are also defined in the ExternalData that +contains the signatures and types imported in crates used by the hacspec +program being compiled.

+

Name resolution

+

When the translation from Rust AST is finished, the identifiers for all +variables inside function bodies are of the following type:

+
pub enum Ident {
+    Unresolved(String),
+    Local(LocalIdent),
+    TopLevel(TopLevelIdent),
+}
+

More precisely, they are still in the Ident::Unresolved case. The compiler +pass in name_resolution.rs resolves the identifiers by linking them to local or global identifiers, +each one having a unique ID. hacspec does not feature De Bruijn variable +handling, instead relying on unique fresh IDs for differentiating local +and global variables from each other.

+

External data

+

A hacspec file can never (in principal) be considered alone, as it usually imports +at least several other crates like the hacspec standard library. These external +crates must pre-populate the typechecking context with the types and function +signatures that they define.

+

It's the job of hir_to_rustspec.rs to retrieve this data. The critical +piece of code in this file is the following:

+
let num_def_ids = crate_store.num_def_ids_untracked(*krate_num);
+let def_ids = (0..num_def_ids).into_iter().map(|id| DefId {
+    krate: *krate_num,
+    index: DefIndex::from_usize(id),
+});
+

First, we retrieve the number of exported symbols by an external crate using +num_def_ids_untracked, a function that is specifically labeled +as critical to the hacspec compiler in the Rust compiler codebase. Then, +we manufacture definition IDs for all these exported symbols, relying on the +invariant that they are numbered from 0 to the number of exported symbols +in Rust's compiled crate metadata format.

+

Then, we use those definition IDs (DefId) to query the Rust compiler +via the central TyCtxt +data structure. If the DefId corresponds to a type definition, we examine the +type definition structurally and check whether it corresponds to a hacspec-compatible +type definition. Notably, the type definitions generated by macros like array! +or nat_mod! are only seen here in their expanded version, so we have to retro-engineer +which expanded version corresponds to which macro expansion. This is a vulnerability +of the compiler since it's possible to break the abstraction of the language +by smuggling in a type not defined via a hacspec macro this way. That's why hacspec +developers should be very careful about which dependencies they import in order +to have a 100% safety guarantee.

+

For DefIds corresponding to functions, the signature of the function is analysed +and if it fits the subset of types expected by hacspec, the function is imported +along with its type in a pre-populated typechecking context.

+

Note that it is not possible any more at this point to retrieve the #[in_hacspec], +#[unsafe_hacspec], etc. attributes that would tag the external definitions, +since these attributes get erased by the Rust compiler before reaching the +compiled crates metadata.

+

Typechecking

+

The typechecking is done in typechecker.rs and follows a very regular structure, +making heavy use of immutable data structures to not mess up the various +context manipulations.

+

Note that we need to perform a full typechecking complete with method resolution +because the proof backends need very fine-grained typechecking information +to generate correct code.

+

Be careful: types often need to be de-aliased with dealias_type before +being matched on structurally. Forgetting to dealias will lead to bugs with +type aliases.

+

Proof backends

+

The different proof backends (rustspec_to_fstar.rs, etc) all enjoy a similar +structure that ought to be refactored to showcase their commonality. The backends +don't use an intermediate AST to generate the code in the proof assistant but +rather directly print code as string using the pretty +pretty-printing library. If you want to start a new proof backend, the easiest +solution is probably to copy an existing proof backend and tweak it until +you get the right result.

+

The code generation has to be fine-tuned to interface with a replica of the +hacspec standard library in the host proof assistant, whose correspondence with +the original hacspec library in Rust is part of the trusted code base. More specially, +clever solutions to encode sequences and array, as well as all the different types +of public and secret machine integers, and the interaction between the two +(seeing a double as a string of bytes) have to be implemented through proof +assistant libraries.

+

Unit tests

+

The compiler has various unit tests that are controlled trough the language/tests +files. Please enrich the unit tests bases in language-tests, +negative-language-tests and test-crate as you implement new features for +the compiler. The compiler can also be tested against all the hacspec cryptographic +specifications by running examples/typecheck_examples.sh from the root of +the repository.

+

Contributors

+

A list of contributors to the hacspec project.

+ +

If you feel you're missing from this list, feel free to add yourself in a PR.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/searcher.js b/archive/searcher.js new file mode 100644 index 0000000..dc03e0a --- /dev/null +++ b/archive/searcher.js @@ -0,0 +1,483 @@ +"use strict"; +window.search = window.search || {}; +(function search(search) { + // Search functionality + // + // You can use !hasFocus() to prevent keyhandling in your key + // event handlers while the user is typing their search. + + if (!Mark || !elasticlunr) { + return; + } + + //IE 11 Compatibility from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith + if (!String.prototype.startsWith) { + String.prototype.startsWith = function(search, pos) { + return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; + }; + } + + var search_wrap = document.getElementById('search-wrapper'), + searchbar = document.getElementById('searchbar'), + searchbar_outer = document.getElementById('searchbar-outer'), + searchresults = document.getElementById('searchresults'), + searchresults_outer = document.getElementById('searchresults-outer'), + searchresults_header = document.getElementById('searchresults-header'), + searchicon = document.getElementById('search-toggle'), + content = document.getElementById('content'), + + searchindex = null, + doc_urls = [], + results_options = { + teaser_word_count: 30, + limit_results: 30, + }, + search_options = { + bool: "AND", + expand: true, + fields: { + title: {boost: 1}, + body: {boost: 1}, + breadcrumbs: {boost: 0} + } + }, + mark_exclude = [], + marker = new Mark(content), + current_searchterm = "", + URL_SEARCH_PARAM = 'search', + URL_MARK_PARAM = 'highlight', + teaser_count = 0, + + SEARCH_HOTKEY_KEYCODE = 83, + ESCAPE_KEYCODE = 27, + DOWN_KEYCODE = 40, + UP_KEYCODE = 38, + SELECT_KEYCODE = 13; + + function hasFocus() { + return searchbar === document.activeElement; + } + + function removeChildren(elem) { + while (elem.firstChild) { + elem.removeChild(elem.firstChild); + } + } + + // Helper to parse a url into its building blocks. + function parseURL(url) { + var a = document.createElement('a'); + a.href = url; + return { + source: url, + protocol: a.protocol.replace(':',''), + host: a.hostname, + port: a.port, + params: (function(){ + var ret = {}; + var seg = a.search.replace(/^\?/,'').split('&'); + var len = seg.length, i = 0, s; + for (;i': '>', + '"': '"', + "'": ''' + }; + var repl = function(c) { return MAP[c]; }; + return function(s) { + return s.replace(/[&<>'"]/g, repl); + }; + })(); + + function formatSearchMetric(count, searchterm) { + if (count == 1) { + return count + " search result for '" + searchterm + "':"; + } else if (count == 0) { + return "No search results for '" + searchterm + "'."; + } else { + return count + " search results for '" + searchterm + "':"; + } + } + + function formatSearchResult(result, searchterms) { + var teaser = makeTeaser(escapeHTML(result.doc.body), searchterms); + teaser_count++; + + // The ?URL_MARK_PARAM= parameter belongs inbetween the page and the #heading-anchor + var url = doc_urls[result.ref].split("#"); + if (url.length == 1) { // no anchor found + url.push(""); + } + + // encodeURIComponent escapes all chars that could allow an XSS except + // for '. Due to that we also manually replace ' with its url-encoded + // representation (%27). + var searchterms = encodeURIComponent(searchterms.join(" ")).replace(/\'/g, "%27"); + + return '' + result.doc.breadcrumbs + '' + + '' + + teaser + ''; + } + + function makeTeaser(body, searchterms) { + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + var stemmed_searchterms = searchterms.map(function(w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var searchterm_weight = 40; + var weighted = []; // contains elements of ["word", weight, index_in_document] + // split in sentences, then words + var sentences = body.toLowerCase().split('. '); + var index = 0; + var value = 0; + var searchterm_found = false; + for (var sentenceindex in sentences) { + var words = sentences[sentenceindex].split(' '); + value = 8; + for (var wordindex in words) { + var word = words[wordindex]; + if (word.length > 0) { + for (var searchtermindex in stemmed_searchterms) { + if (elasticlunr.stemmer(word).startsWith(stemmed_searchterms[searchtermindex])) { + value = searchterm_weight; + searchterm_found = true; + } + }; + weighted.push([word, value, index]); + value = 2; + } + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + }; + index += 1; // because we split at a two-char boundary '. ' + }; + + if (weighted.length == 0) { + return body; + } + + var window_weight = []; + var window_size = Math.min(weighted.length, results_options.teaser_word_count); + + var cur_sum = 0; + for (var wordindex = 0; wordindex < window_size; wordindex++) { + cur_sum += weighted[wordindex][1]; + }; + window_weight.push(cur_sum); + for (var wordindex = 0; wordindex < weighted.length - window_size; wordindex++) { + cur_sum -= weighted[wordindex][1]; + cur_sum += weighted[wordindex + window_size][1]; + window_weight.push(cur_sum); + }; + + if (searchterm_found) { + var max_sum = 0; + var max_sum_window_index = 0; + // backwards + for (var i = window_weight.length - 1; i >= 0; i--) { + if (window_weight[i] > max_sum) { + max_sum = window_weight[i]; + max_sum_window_index = i; + } + }; + } else { + max_sum_window_index = 0; + } + + // add around searchterms + var teaser_split = []; + var index = weighted[max_sum_window_index][2]; + for (var i = max_sum_window_index; i < max_sum_window_index+window_size; i++) { + var word = weighted[i]; + if (index < word[2]) { + // missing text from index to start of `word` + teaser_split.push(body.substring(index, word[2])); + index = word[2]; + } + if (word[1] == searchterm_weight) { + teaser_split.push("") + } + index = word[2] + word[0].length; + teaser_split.push(body.substring(word[2], index)); + if (word[1] == searchterm_weight) { + teaser_split.push("") + } + }; + + return teaser_split.join(''); + } + + function init(config) { + results_options = config.results_options; + search_options = config.search_options; + searchbar_outer = config.searchbar_outer; + doc_urls = config.doc_urls; + searchindex = elasticlunr.Index.load(config.index); + + // Set up events + searchicon.addEventListener('click', function(e) { searchIconClickHandler(); }, false); + searchbar.addEventListener('keyup', function(e) { searchbarKeyUpHandler(); }, false); + document.addEventListener('keydown', function(e) { globalKeyHandler(e); }, false); + // If the user uses the browser buttons, do the same as if a reload happened + window.onpopstate = function(e) { doSearchOrMarkFromUrl(); }; + // Suppress "submit" events so the page doesn't reload when the user presses Enter + document.addEventListener('submit', function(e) { e.preventDefault(); }, false); + + // If reloaded, do the search or mark again, depending on the current url parameters + doSearchOrMarkFromUrl(); + } + + function unfocusSearchbar() { + // hacky, but just focusing a div only works once + var tmp = document.createElement('input'); + tmp.setAttribute('style', 'position: absolute; opacity: 0;'); + searchicon.appendChild(tmp); + tmp.focus(); + tmp.remove(); + } + + // On reload or browser history backwards/forwards events, parse the url and do search or mark + function doSearchOrMarkFromUrl() { + // Check current URL for search request + var url = parseURL(window.location.href); + if (url.params.hasOwnProperty(URL_SEARCH_PARAM) + && url.params[URL_SEARCH_PARAM] != "") { + showSearch(true); + searchbar.value = decodeURIComponent( + (url.params[URL_SEARCH_PARAM]+'').replace(/\+/g, '%20')); + searchbarKeyUpHandler(); // -> doSearch() + } else { + showSearch(false); + } + + if (url.params.hasOwnProperty(URL_MARK_PARAM)) { + var words = decodeURIComponent(url.params[URL_MARK_PARAM]).split(' '); + marker.mark(words, { + exclude: mark_exclude + }); + + var markers = document.querySelectorAll("mark"); + function hide() { + for (var i = 0; i < markers.length; i++) { + markers[i].classList.add("fade-out"); + window.setTimeout(function(e) { marker.unmark(); }, 300); + } + } + for (var i = 0; i < markers.length; i++) { + markers[i].addEventListener('click', hide); + } + } + } + + // Eventhandler for keyevents on `document` + function globalKeyHandler(e) { + if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || e.target.type === 'textarea' || e.target.type === 'text' || !hasFocus() && /^(?:input|select|textarea)$/i.test(e.target.nodeName)) { return; } + + if (e.keyCode === ESCAPE_KEYCODE) { + e.preventDefault(); + searchbar.classList.remove("active"); + setSearchUrlParameters("", + (searchbar.value.trim() !== "") ? "push" : "replace"); + if (hasFocus()) { + unfocusSearchbar(); + } + showSearch(false); + marker.unmark(); + } else if (!hasFocus() && e.keyCode === SEARCH_HOTKEY_KEYCODE) { + e.preventDefault(); + showSearch(true); + window.scrollTo(0, 0); + searchbar.select(); + } else if (hasFocus() && e.keyCode === DOWN_KEYCODE) { + e.preventDefault(); + unfocusSearchbar(); + searchresults.firstElementChild.classList.add("focus"); + } else if (!hasFocus() && (e.keyCode === DOWN_KEYCODE + || e.keyCode === UP_KEYCODE + || e.keyCode === SELECT_KEYCODE)) { + // not `:focus` because browser does annoying scrolling + var focused = searchresults.querySelector("li.focus"); + if (!focused) return; + e.preventDefault(); + if (e.keyCode === DOWN_KEYCODE) { + var next = focused.nextElementSibling; + if (next) { + focused.classList.remove("focus"); + next.classList.add("focus"); + } + } else if (e.keyCode === UP_KEYCODE) { + focused.classList.remove("focus"); + var prev = focused.previousElementSibling; + if (prev) { + prev.classList.add("focus"); + } else { + searchbar.select(); + } + } else { // SELECT_KEYCODE + window.location.assign(focused.querySelector('a')); + } + } + } + + function showSearch(yes) { + if (yes) { + search_wrap.classList.remove('hidden'); + searchicon.setAttribute('aria-expanded', 'true'); + } else { + search_wrap.classList.add('hidden'); + searchicon.setAttribute('aria-expanded', 'false'); + var results = searchresults.children; + for (var i = 0; i < results.length; i++) { + results[i].classList.remove("focus"); + } + } + } + + function showResults(yes) { + if (yes) { + searchresults_outer.classList.remove('hidden'); + } else { + searchresults_outer.classList.add('hidden'); + } + } + + // Eventhandler for search icon + function searchIconClickHandler() { + if (search_wrap.classList.contains('hidden')) { + showSearch(true); + window.scrollTo(0, 0); + searchbar.select(); + } else { + showSearch(false); + } + } + + // Eventhandler for keyevents while the searchbar is focused + function searchbarKeyUpHandler() { + var searchterm = searchbar.value.trim(); + if (searchterm != "") { + searchbar.classList.add("active"); + doSearch(searchterm); + } else { + searchbar.classList.remove("active"); + showResults(false); + removeChildren(searchresults); + } + + setSearchUrlParameters(searchterm, "push_if_new_search_else_replace"); + + // Remove marks + marker.unmark(); + } + + // Update current url with ?URL_SEARCH_PARAM= parameter, remove ?URL_MARK_PARAM and #heading-anchor . + // `action` can be one of "push", "replace", "push_if_new_search_else_replace" + // and replaces or pushes a new browser history item. + // "push_if_new_search_else_replace" pushes if there is no `?URL_SEARCH_PARAM=abc` yet. + function setSearchUrlParameters(searchterm, action) { + var url = parseURL(window.location.href); + var first_search = ! url.params.hasOwnProperty(URL_SEARCH_PARAM); + if (searchterm != "" || action == "push_if_new_search_else_replace") { + url.params[URL_SEARCH_PARAM] = searchterm; + delete url.params[URL_MARK_PARAM]; + url.hash = ""; + } else { + delete url.params[URL_MARK_PARAM]; + delete url.params[URL_SEARCH_PARAM]; + } + // A new search will also add a new history item, so the user can go back + // to the page prior to searching. A updated search term will only replace + // the url. + if (action == "push" || (action == "push_if_new_search_else_replace" && first_search) ) { + history.pushState({}, document.title, renderURL(url)); + } else if (action == "replace" || (action == "push_if_new_search_else_replace" && !first_search) ) { + history.replaceState({}, document.title, renderURL(url)); + } + } + + function doSearch(searchterm) { + + // Don't search the same twice + if (current_searchterm == searchterm) { return; } + else { current_searchterm = searchterm; } + + if (searchindex == null) { return; } + + // Do the actual search + var results = searchindex.search(searchterm, search_options); + var resultcount = Math.min(results.length, results_options.limit_results); + + // Display search metrics + searchresults_header.innerText = formatSearchMetric(resultcount, searchterm); + + // Clear and insert results + var searchterms = searchterm.split(' '); + removeChildren(searchresults); + for(var i = 0; i < resultcount ; i++){ + var resultElem = document.createElement('li'); + resultElem.innerHTML = formatSearchResult(results[i], searchterms); + searchresults.appendChild(resultElem); + } + + // Display results + showResults(true); + } + + fetch(path_to_root + 'searchindex.json') + .then(response => response.json()) + .then(json => init(json)) + .catch(error => { // Try to load searchindex.js if fetch failed + var script = document.createElement('script'); + script.src = path_to_root + 'searchindex.js'; + script.onload = () => init(window.search); + document.head.appendChild(script); + }); + + // Exported functions + search.hasFocus = hasFocus; +})(window.search); diff --git a/archive/searchindex.js b/archive/searchindex.js new file mode 100644 index 0000000..ad95048 --- /dev/null +++ b/archive/searchindex.js @@ -0,0 +1 @@ +Object.assign(window.search, {"doc_urls":["index.html#introduction","language/index.html#the-hacspec-language","language/syntax.html#syntax","language/core.html#the-core-of-hacspec","language/core.html#crates-and-modules","language/core.html#functions","language/core.html#basic-types","language/core.html#borrows","language/core.html#constants","language/core.html#assignments","language/core.html#loops","language/core.html#conditionals","language/core.html#statements-and-expressions","language/core.html#visibility","language/seq.html#sequences-and-arrays","language/seq.html#sequences","language/seq.html#arrays","language/enums.html#structs-and-enums","language/enums.html#structs","language/enums.html#enums","language/enums.html#option-and-result","language/errors.html#error-handling","std/index.html#the-hacspec-std-library","std/arithmetic.html#arithmetic","std/arithmetic.html#the-numeric-trait","std/arithmetic.html#public-and-secret-integers","std/arithmetic.html#abstract-integers","std/arithmetic.html#integers-as-bytes","std/seq.html#sequence-and-array-operations","std/seq.html#operations-common-to-sequences-and-arrays","std/seq.html#base-traits","std/seq.html#chunking","std/seq.html#conversions","std/seq.html#secrecy","std/seq.html#ownage","std/seq.html#array-specific-operations","std/seq.html#sequence-specific-operations","examples/index.html#examples","usage/index.html#usage","usage/specifications.html#specifications","usage/verification.html#verification","usage/verification.html#coq","usage/verification.html#quickcheck--quickchick","usage/test_vectors.html#test-vectors","developers/index.html#for-developers","developers/compiler.html#working-on-the-compiler","developers/compiler.html#high-level-architecture","developers/compiler.html#code-organization","developers/compiler.html#hacspec-ast","developers/compiler.html#translation-from-rust-ast","developers/compiler.html#name-resolution","developers/compiler.html#external-data","developers/compiler.html#typechecking","developers/compiler.html#proof-backends","developers/compiler.html#unit-tests","misc/contributors.html#contributors"],"index":{"documentStore":{"docInfo":{"0":{"body":64,"breadcrumbs":2,"title":1},"1":{"body":80,"breadcrumbs":4,"title":2},"10":{"body":29,"breadcrumbs":4,"title":1},"11":{"body":17,"breadcrumbs":4,"title":1},"12":{"body":33,"breadcrumbs":5,"title":2},"13":{"body":24,"breadcrumbs":4,"title":1},"14":{"body":0,"breadcrumbs":6,"title":2},"15":{"body":48,"breadcrumbs":5,"title":1},"16":{"body":57,"breadcrumbs":5,"title":1},"17":{"body":7,"breadcrumbs":6,"title":2},"18":{"body":46,"breadcrumbs":5,"title":1},"19":{"body":48,"breadcrumbs":5,"title":1},"2":{"body":196,"breadcrumbs":4,"title":1},"20":{"body":51,"breadcrumbs":6,"title":2},"21":{"body":48,"breadcrumbs":6,"title":2},"22":{"body":66,"breadcrumbs":6,"title":3},"23":{"body":13,"breadcrumbs":5,"title":1},"24":{"body":57,"breadcrumbs":6,"title":2},"25":{"body":75,"breadcrumbs":7,"title":3},"26":{"body":45,"breadcrumbs":6,"title":2},"27":{"body":39,"breadcrumbs":6,"title":2},"28":{"body":0,"breadcrumbs":9,"title":3},"29":{"body":0,"breadcrumbs":10,"title":4},"3":{"body":0,"breadcrumbs":5,"title":2},"30":{"body":60,"breadcrumbs":8,"title":2},"31":{"body":27,"breadcrumbs":7,"title":1},"32":{"body":26,"breadcrumbs":7,"title":1},"33":{"body":10,"breadcrumbs":7,"title":1},"34":{"body":21,"breadcrumbs":7,"title":1},"35":{"body":13,"breadcrumbs":9,"title":3},"36":{"body":12,"breadcrumbs":9,"title":3},"37":{"body":30,"breadcrumbs":2,"title":1},"38":{"body":0,"breadcrumbs":2,"title":1},"39":{"body":0,"breadcrumbs":3,"title":1},"4":{"body":46,"breadcrumbs":5,"title":2},"40":{"body":0,"breadcrumbs":3,"title":1},"41":{"body":0,"breadcrumbs":3,"title":1},"42":{"body":188,"breadcrumbs":4,"title":2},"43":{"body":0,"breadcrumbs":5,"title":2},"44":{"body":10,"breadcrumbs":2,"title":1},"45":{"body":0,"breadcrumbs":5,"title":2},"46":{"body":37,"breadcrumbs":6,"title":3},"47":{"body":13,"breadcrumbs":5,"title":2},"48":{"body":38,"breadcrumbs":5,"title":2},"49":{"body":51,"breadcrumbs":6,"title":3},"5":{"body":31,"breadcrumbs":4,"title":1},"50":{"body":52,"breadcrumbs":5,"title":2},"51":{"body":188,"breadcrumbs":5,"title":2},"52":{"body":53,"breadcrumbs":4,"title":1},"53":{"body":94,"breadcrumbs":5,"title":2},"54":{"body":34,"breadcrumbs":5,"title":2},"55":{"body":37,"breadcrumbs":2,"title":1},"6":{"body":31,"breadcrumbs":5,"title":2},"7":{"body":39,"breadcrumbs":4,"title":1},"8":{"body":8,"breadcrumbs":4,"title":1},"9":{"body":57,"breadcrumbs":4,"title":1}},"docs":{"0":{"body":"hacspec is a specification language for crypto primitives, protocols, and more. It is a subset of the Rust programming language, focused on functional programming and it avoids the use of mutable state as much as possible. This book gives an overview of: The hacspec language ; The different parts of the project: the standard library , examples of hacspec programs ; How to use hacspec to write specifications for standards and verification ; How to use hacspec to generate test vectors ; Work on the hacspec compiler and tooling itself . For a quick introduction you can also check out these slides from April 2021. An in-depth technical report is also available, and serves as a reference for the language formalization.","breadcrumbs":"Introduction » Introduction","id":"0","title":"Introduction"},"1":{"body":"This section gives an informal description of the hacspec language, whose goal is to provide hands-on documentation for users of the language. For a formal specification of the semantics of the language, please refer to the technical report . hacspec is a domain-specific language embedded inside Rust. This means that all correct hacspec programs are correct Rust programs: you can use the usual Rust tooling for working on your hacspec developments. However, hacspec is a strict subset of Rust: this means that some features of Rust are forbidden inside hacspec. The goal of restricting the expressiveness of the language is twofold: first, help domain experts such as cryptographers convey their specifications in a fashion that should help them avoid mistakes; second, provide a way for Rust programmers to interact with theorem provers such as F* or Coq.","breadcrumbs":"The hacspec language » The hacspec language","id":"1","title":"The hacspec language"},"10":{"body":"Looping is severely restricted in hacspec compared to Rust, as the only accepted form is for looping with a counter over an integer range: for i in low..hi { ... // The block can use i and reassign mutable variables\n} The motivation for this restriction is to ease the proof of termination of loops. break or continue statements are forbidden.","breadcrumbs":"The hacspec language » Core » Loops","id":"10","title":"Loops"},"11":{"body":"hacspec allows statement-like conditionals as well as expression-like conditionals: if cond1 { ... // the block can modify mutable variables\n} else { // else block is optional here ...\n}\nlet x = if cond2 { ... } else { ... };","breadcrumbs":"The hacspec language » Core » Conditionals","id":"11","title":"Conditionals"},"12":{"body":"In regular Rust, statements and expressions can be mixed together freely. This not the case in hacspec that imposes a strict precedence of statements over expressions. For instance, the following code is not allowed in hacspec: let x = if cond { y = true; // ERROR: the reassignment is a statement, which cannot // be contained in the expression to which x is assigned. 3\n} else { 4\n};","breadcrumbs":"The hacspec language » Core » Statements and expressions","id":"12","title":"Statements and expressions"},"13":{"body":"hacspec allows for both pub and non-pub versions of item declarations (pub, non-pub, etc). You simply have to respect the Rust visibility rules. Note that these visibility distinctions might not be translated in the proof backends.","breadcrumbs":"The hacspec language » Core » Visibility","id":"13","title":"Visibility"},"14":{"body":"","breadcrumbs":"The hacspec language » Sequences and arrays » Sequences and arrays","id":"14","title":"Sequences and arrays"},"15":{"body":"The staple Vec type is forbidden in hacspec. Instead, you have to use the type Seq, which is implemented as a wrapper around Vec. The most notable differences between Seq and Vec is that Seq is not resizable, and does not support push and pop operations. Instead, the final length of the seq has to be provided at creation time. See the hacspec standard library documentation for more details. Seq is a built-in generic type that always has to be indexed by the content of the cells: Seq, etc.","breadcrumbs":"The hacspec language » Sequences and arrays » Sequences","id":"15","title":"Sequences"},"16":{"body":"The native Rust array types [, ] is forbidden in hacspec. Instead, you have to declare nominally at the top-level new array types for a specific cell content and size with: array!(FooArray, u8, 64);\n// This declares type FooArray as an array of u8 of size 64\nbytes!(BarArray, 64);\n// bytes! is a specialized version of array! with secret bytes\narray!(BazArray, u8, 64, type_for_indexes:BazIndex);\n// The additional argument type_for_indexes defines an alias of usize\n// intended to spot which usizes are used to index BazArray (useful for\n// verification)","breadcrumbs":"The hacspec language » Sequences and arrays » Arrays","id":"16","title":"Arrays"},"17":{"body":"hacspec also supports user-defined structs and enums with some restrictions.","breadcrumbs":"The hacspec language » Structs and enums » Structs and enums","id":"17","title":"Structs and enums"},"18":{"body":"The only form of struct declaration currently allowed in hacspec is: struct Foo(u32, Seq); The struct thus declared can have one or more components. This form of struct declaration effectively corresponds to a single-case enum, and is implemented as such. Struct components can be accessed through let-binding destructuring: let Foo(x, y) = z; Note that you can't store borrowed types inside hacspec structs, hence there is no need for lifetime variables.","breadcrumbs":"The hacspec language » Structs and enums » Structs","id":"18","title":"Structs"},"19":{"body":"hacspec supports very restricted enum declarations: enum Foo { CaseA, CaseB(u16), CaseC(Seq, u64)\n} These declaration don't support the basic Rust features such as C-style union declarations with assignments for each case. Enumeration values can be pattern-matched in an expression: match x { Foo::CaseA => ..., Foo::CaseB(y) => ..., Foo::CaseC(y,z) => ...\n} Note that you can't store borrowed types inside hacspec enums, hence there is no need for lifetime variables.","breadcrumbs":"The hacspec language » Structs and enums » Enums","id":"19","title":"Enums"},"2":{"body":"P ::= [i]\\* Program items\ni ::= array!(t, μ, n) Array type declaration where n is a natural number | nat_mod!(t, n) Modular integer | fn f([d]+) -> μ b Function declaration | type t = enum { [c(μ)]+ } Enum declaration (with constructors) | type t = struct([μ]+) Struct declaration (without named fields) | const x: μ = e Constant declaration | use crate::* External crate import | use mod::* Internal module import\nd ::= x: τ Function argument | mut x: τ Mutable function argument\nμ ::= unit|bool|u8|U8|i8|I8... Base types | Seq<μ> Sequence | String Strings | ([μ]+) Tuple | unit Unit type | t Named type\nτ ::= μ Plain type | &μ Immutable reference\nb ::= {[s;]+} Block\np ::= x Variable pattern | ([p]+) Tuple pattern | t (p) Struct constructor pattern | _ Wildcard pattern\ns ::= let p: τ = e Let binding | let mut p: τ = e Mutable let binding | x = e Variable reassignment | x = e? Variable reassignment with result/option catching | let p: τ = e? Let binding with result/option catching | if e then b (else b) Conditional statements | c(e) Enum injection | match e { [c(p) => e]+ } Pattern matching | for x in e..e b For loop (integers only) | e Return expression | b Statement block\ne ::= ()|true|false Unit and boolean literals | n Integer literal | U8(e)|I8(e)|... Secret integer classification | \"...\" String literal | t([e]+) Array literal | e as μ Integer casting | x Variable | () Unit | f([a]+) Function call | if e then e else e Conditional expression | e ⊙ e Binary operations | ⊘ e Unary operations | ([e]+) Tuple constructor | x[e] Array or sequence index\na ::= e Linear argument | &e Call-site borrowing\n⊙ ::= + | - | * | / | && | || | == | != | > | <\n⊘ ::= - | ~","breadcrumbs":"The hacspec language » Syntax » Syntax","id":"2","title":"Syntax"},"20":{"body":"User-defined structs and enums presented above don't support generic type parameters yet. However, the built-in enums Option and Result support type parameters. Those type parameters have to be explicitly declared each time, as hacspec does not currently support type inference: match x { Result::, bool>::Ok(y) => ..., Result::, bool>::Err(err) => ...\n} Such type parameter declaration is cumbersome; as a workaround we advise to declare a type alias as such: type MyResult = Result::, bool>;","breadcrumbs":"The hacspec language » Structs and enums » Option and Result","id":"20","title":"Option and Result"},"21":{"body":"Error handling in Rust is done via the Result type (see the structs and enums section). But on top of explicit pattern-matching, hacspec also supports the popular ? operator to quickly perform an early return and propagate the error case upwards. ? is only allowed at the very end of an expression in a let-binding or reassignment statement: let x = foo(true)?; // GOOD\nlet y = foo(bar(0)?); // ERROR: the ? is not at the end of the statement Currently, ? is the only way to return early in a hacspec function.","breadcrumbs":"The hacspec language » Error handling » Error handling","id":"21","title":"Error handling"},"22":{"body":"The hacspec standard library contains a host of functions, type generators and methods that define the base objects manipulated in classic cryptographic primitives. Methods in the standard library can be divided into three categories: The not_hacspec methods whose signature and body does not belong to the hacspec fragment of Rust. They should not be used in hacspec code, but can be used as helpers for e.g. testing. The unsafe_hacspec methods whose signature belongs to hacspec but not the body. These methods can be used in hacspec programs but their body is part of the trusted codebase. The in_hacspec methods whose signatures and bodies belong to the hacspec fragment of Rust. These can be used safely in hacspec programs.","breadcrumbs":"The hacspec std library » The hacspec std library","id":"22","title":"The hacspec std library"},"23":{"body":"hacspec overloads the arithmetic operators for a wide variety of types corresponding to mathematical values mentioned in cryptographic specifications.","breadcrumbs":"The hacspec std library » Arithmetic » Arithmetic","id":"23","title":"Arithmetic"},"24":{"body":"All of these types implement the Numeric trait defined by the hacspec standard library. The arithmetic operators work for all kinds of integers, but also arrays and sequences (point-wise operations). Note that the list of types implementing Numeric is hardcoded in the hacspec compiler, and as of this day cannot be extended by the user. While the Rust compiler can infer the type of integer literals automatically, this feature is not implemented by the hacspec compiler: let w: u32 = 0; // ERROR: an integer without a suffix will have type usize\nlet x: u64 = 0x64265u64; // GOOD\nlet y: u64 = 4u64; // GOOD","breadcrumbs":"The hacspec std library » Arithmetic » The Numeric trait","id":"24","title":"The Numeric trait"},"25":{"body":"One of hacspec's goal is to enable users to quickly check whether their application does not obviously break the constant-time guarantee. Certain processor instructions take more or less time to complete depending on their inputs, which can cause secret leakage and break the security of an application. Hence, hacspec offers for each type of integer (u8, u32, etc.) a mirror secret integer type (U8, U32, etc.) for which operations that break constant-timedness are forbidden. This public/private distinction can be found at a lot of places in the standard library, and is made to forbid functions and data structures from leaking secrets. Conversions between public and secret integers are restricted to two functions: classify and declassify.","breadcrumbs":"The hacspec std library » Arithmetic » Public and secret integers","id":"25","title":"Public and secret integers"},"26":{"body":"Some cryptographic specifications talk about modular arithmetic in large fields, whose size overflows even u128. To ease the expression of such specifications, hacspec offers wrapper types around BigInt that can be declared using the following API: abstract_nat_mod!( NameOfModularInts, NameOfUnderlyingByteRepresentation, 256, // Number of bits for the representation of the big integer, \"ffffffffffffffff00000000000065442\", // Hex representation of the modulo value as hex\n) abstract_public_nat_mod!( ... // Public version of above\n)","breadcrumbs":"The hacspec std library » Arithmetic » Abstract integers","id":"26","title":"Abstract integers"},"27":{"body":"It is often useful to view an integer as a sequence of bytes that can be manipulated individually. The hacspec standard library provides a number of function to translate back and forth from integer to sequence of bytes: pub fn u16_to_le_bytes(x: u16) -> u16Word; pub fn u16_from_le_bytes(s: u16Word) -> u16; pub fn U64_to_be_bytes(x: U64) -> U64Word; pub fn U64_from_be_bytes(s: U64Word) -> U64; ...","breadcrumbs":"The hacspec std library » Arithmetic » Integers as bytes","id":"27","title":"Integers as bytes"},"28":{"body":"","breadcrumbs":"The hacspec std library » Sequence and array operations » Sequence and array operations","id":"28","title":"Sequence and array operations"},"29":{"body":"","breadcrumbs":"The hacspec std library » Sequence and array operations » Operations common to sequences and arrays","id":"29","title":"Operations common to sequences and arrays"},"3":{"body":"","breadcrumbs":"The hacspec language » Core » The core of hacspec","id":"3","title":"The core of hacspec"},"30":{"body":"Some operations are common to both sequences and arrays by design, and can be used as the interoperability base between the two types of collections. These operations are the following: len: gives the length of an array or sequence; iter: iterates over the content of the array or sequence (unsafe in hacspec but can be used for implementing primitives) create: creates a sequence or array and initializes the elements to the default value (0 for arithmetic types); update_slice, update and update_start: produce a new sequence or array with modified contents. Both sequences and arrays implement indexing with any type of unsigned public integer.","breadcrumbs":"The hacspec std library » Sequence and array operations » Base traits","id":"30","title":"Base traits"},"31":{"body":"Both arrays and sequences support chunking with methods like: num_chunks and num_exact_chunks (whole or partial blocks); get_chunk, get_exact_chunk and get_remainder_chunk; set_chunk and set_exact_chunk. The read operations borrow the sequence or array, but the write operations create a new sequence or array.","breadcrumbs":"The hacspec std library » Sequence and array operations » Chunking","id":"31","title":"Chunking"},"32":{"body":"Sequences and arrays can be created from other types via methods like: from_public_slice and from_slice; from_vec and from_native_slice; from_public_seq and from_seq (to convert a seq into an array of the correct size); from_string and from_hex for byte or hex strings (hex only for u8 sequences and arrays).","breadcrumbs":"The hacspec std library » Sequence and array operations » Conversions","id":"32","title":"Conversions"},"33":{"body":"The methods prefixed by public performs an element-wise classification of the data under the hood.","breadcrumbs":"The hacspec std library » Sequence and array operations » Secrecy","id":"33","title":"Secrecy"},"34":{"body":"Some methods have two versions: an owned and a non-owned version, depending on whether the self argument is consumed or not by the method. This distinction is useful to avoid unnecessary copies and thus be more performant.","breadcrumbs":"The hacspec std library » Sequence and array operations » Ownage","id":"34","title":"Ownage"},"35":{"body":"Since array length is known statically, new does not take any argument, same as length. slices of arrays become Seq.","breadcrumbs":"The hacspec std library » Sequence and array operations » Array-specific operations","id":"35","title":"Array-specific operations"},"36":{"body":"Sequences can be extended (by creating a new sequence under the hood) with push or concat. Sequences can also be sliced with slice.","breadcrumbs":"The hacspec std library » Sequence and array operations » Sequence-specific operations","id":"36","title":"Sequence-specific operations"},"37":{"body":"The main hacspec repository contains a set of example specifications . In this section we pull out some interesting bits to demonstrate the hacspec language. There's also a provider that bundles the different cryptographic primitives into a single library. The provider implements the RustCrypto traits in order to facilitate interoperability.","breadcrumbs":"Examples » Examples","id":"37","title":"Examples"},"38":{"body":"","breadcrumbs":"Usage » Usage","id":"38","title":"Usage"},"39":{"body":"","breadcrumbs":"Usage » Specifications » Specifications","id":"39","title":"Specifications"},"4":{"body":"hacspec only supports single-module crates, due to a technical limitation of the Rust compiler. Inside this single file, a hacspec program shall always start with: use hacspec_lib::*; // Optional: dependencies on other crates containing hacspec programs\nuse other_hacpsec_crate::*; No other form of use is allowed in hacspec, because allowing Rust's complex import patterns would increase the complexity of the hacspec compiler and conflict with the module systems of most proof assistants.","breadcrumbs":"The hacspec language » Core » Crates and modules","id":"4","title":"Crates and modules"},"40":{"body":"","breadcrumbs":"Usage » Verification » Verification","id":"40","title":"Verification"},"41":{"body":"","breadcrumbs":"Usage » Verification » Coq","id":"41","title":"Coq"},"42":{"body":"You can test your hacspec code using QuickCheck (a Rust library for randomized property-based testing), by simply implementing quickcheck::Arbitrary for the type you want to generate tests for. For example: impl Arbitrary for Fp { fn arbitrary(g: &mut Gen) -> Fp { let mut a: [u64; 6] = [0; 6]; for i in 0..6 { a[i] = u64::arbitrary(g); } let mut b: [u8; 48] = [0; 48]; for i in 0..6 { let val: u64 = a[i]; b[(i*8)..((i+1)*8)].copy_from_slice(&(val.to_le_bytes())); } Fp::from_byte_seq_le(Seq::::from_public_slice(&b)) }\n} then you can use the quickcheck attribute, to make QuickCheck do property based testing for this function: #[cfg(test)]\n#[quickcheck] //Using the fp arbitraty implementation from above to generate fp2 elements.\nfn test_fp2_prop_add_neg(a: Fp2) -> bool { let b = fp2neg(a); fp2fromfp(Fp::ZERO()) == fp2add(a, b)\n} which will run when you do cargo test. If you then add the tag #[cfg(proof)] and export to Coq, cargo hacspec -o coq/src/.v then you get corresponding QuickChick test, Definition test_fp2_prop_add_neg (a_320 : fp2) : bool := let b_321 := fp2neg (a_320) in (fp2fromfp (nat_mod_zero )) =.? (fp2add (a_320) (b_321)). QuickChick (forAll g_fp2 (fun a_320 : fp2 =>test_fp2_prop_add_neg a_320)). and generators will be constructed for the types automatically as, Instance show_fp : Show (fp) := Build_Show (fp) (fun x => show (GZnZ.val _ x)).\nDefinition g_fp : G (fp) := @bindGen Z (fp) (arbitrary) (fun x => returnGen (@Z_in_nat_mod _ x)).\nInstance gen_fp : Gen (fp) := Build_Gen fp g_fp. which you can then run through coq in the folder coq/ coqc -R src/ Hacspec src/.v Make sure you run: coqc -R src/ Hacspec src/MachineIntegers.v\ncoqc -R src/ Hacspec src/Lib.v or make to generate the .vo files used by .v. For more information: on QuickCheck (in rust): BurntSushi/quickcheck on QuickChick: Software foundations book on QuickChick","breadcrumbs":"Usage » Verification » QuickCheck / QuickChick","id":"42","title":"QuickCheck / QuickChick"},"43":{"body":"","breadcrumbs":"Usage » Test Vectors » Test Vectors","id":"43","title":"Test Vectors"},"44":{"body":"This section contains a handy guide for hacspec developers working on the standard library or the compiler.","breadcrumbs":"For Developers » For Developers","id":"44","title":"For Developers"},"45":{"body":"","breadcrumbs":"For Developers » Working on the compiler » Working on the compiler","id":"45","title":"Working on the compiler"},"46":{"body":"Hacspec compiler architecture The Rustspec compiler intervenes after the regular Rust typechecking, by translating the Rust AST into a stricter hacspec AST, yielding error messages if you're not in the subset. The hacspec AST then undergoes a typechecking phase that replicates the formal typechecking judgment of hacspec, before being compiled to the proof backends like F* or Coq.","breadcrumbs":"For Developers » Working on the compiler » High-level architecture","id":"46","title":"High-level architecture"},"47":{"body":"The source code for the compiler is located in the language/ folder. main.rs is the file containing the driver for the different compiler passes.","breadcrumbs":"For Developers » Working on the compiler » Code organization","id":"47","title":"Code organization"},"48":{"body":"The main file of the compiler is rustspec.rs and it contains the AST structure. Types are usually enclosed into Spanned<...> blocks that attach a location information to an AST node, thereby providing a way to display beautiful error message. Several nodes also contain a Fillable<...> node standing for information that is filled by the typechecking phase but that can be left to None when building the AST.","breadcrumbs":"For Developers » Working on the compiler » Hacspec AST","id":"48","title":"Hacspec AST"},"49":{"body":"This phase is contained in ast_to_rustspec.rs. The trickyness of this translation is that it needs to be aware of certain special names contained in the structure SpecialNames. Indeed, while the Rust AST treats the application enum constructors like function applications, the hacspec AST considers them as proper injection so we need to distinguish them in the Rust AST. For that, we need to know all declared enums at this point of the program. Enums and other SpecialNames are also defined in the ExternalData that contains the signatures and types imported in crates used by the hacspec program being compiled.","breadcrumbs":"For Developers » Working on the compiler » Translation from Rust AST","id":"49","title":"Translation from Rust AST"},"5":{"body":"hacspec is a functional language, and only supports the declaration of top-level functions: fn hacspec_function(x: bool) -> () { ...\n} The functions can take any number of arguments, and may return a value (or not). Note that recursive functions are forbidden in hacspec. The control flow inside hacspec functions is limited, as return statements are forbidden.","breadcrumbs":"The hacspec language » Core » Functions","id":"5","title":"Functions"},"50":{"body":"When the translation from Rust AST is finished, the identifiers for all variables inside function bodies are of the following type: pub enum Ident { Unresolved(String), Local(LocalIdent), TopLevel(TopLevelIdent),\n} More precisely, they are still in the Ident::Unresolved case. The compiler pass in name_resolution.rs resolves the identifiers by linking them to local or global identifiers, each one having a unique ID. hacspec does not feature De Bruijn variable handling, instead relying on unique fresh IDs for differentiating local and global variables from each other.","breadcrumbs":"For Developers » Working on the compiler » Name resolution","id":"50","title":"Name resolution"},"51":{"body":"A hacspec file can never (in principal) be considered alone, as it usually imports at least several other crates like the hacspec standard library. These external crates must pre-populate the typechecking context with the types and function signatures that they define. It's the job of hir_to_rustspec.rs to retrieve this data. The critical piece of code in this file is the following : let num_def_ids = crate_store.num_def_ids_untracked(*krate_num);\nlet def_ids = (0..num_def_ids).into_iter().map(|id| DefId { krate: *krate_num, index: DefIndex::from_usize(id),\n}); First, we retrieve the number of exported symbols by an external crate using num_def_ids_untracked, a function that is specifically labeled as critical to the hacspec compiler in the Rust compiler codebase. Then, we manufacture definition IDs for all these exported symbols, relying on the invariant that they are numbered from 0 to the number of exported symbols in Rust's compiled crate metadata format. Then, we use those definition IDs (DefId) to query the Rust compiler via the central TyCtxt data structure. If the DefId corresponds to a type definition, we examine the type definition structurally and check whether it corresponds to a hacspec-compatible type definition. Notably, the type definitions generated by macros like array! or nat_mod! are only seen here in their expanded version, so we have to retro-engineer which expanded version corresponds to which macro expansion. This is a vulnerability of the compiler since it's possible to break the abstraction of the language by smuggling in a type not defined via a hacspec macro this way. That's why hacspec developers should be very careful about which dependencies they import in order to have a 100% safety guarantee. For DefIds corresponding to functions, the signature of the function is analysed and if it fits the subset of types expected by hacspec, the function is imported along with its type in a pre-populated typechecking context. Note that it is not possible any more at this point to retrieve the #[in_hacspec], #[unsafe_hacspec], etc. attributes that would tag the external definitions, since these attributes get erased by the Rust compiler before reaching the compiled crates metadata.","breadcrumbs":"For Developers » Working on the compiler » External data","id":"51","title":"External data"},"52":{"body":"The typechecking is done in typechecker.rs and follows a very regular structure, making heavy use of immutable data structures to not mess up the various context manipulations. Note that we need to perform a full typechecking complete with method resolution because the proof backends need very fine-grained typechecking information to generate correct code. Be careful: types often need to be de-aliased with dealias_type before being matched on structurally. Forgetting to dealias will lead to bugs with type aliases.","breadcrumbs":"For Developers » Working on the compiler » Typechecking","id":"52","title":"Typechecking"},"53":{"body":"The different proof backends (rustspec_to_fstar.rs, etc) all enjoy a similar structure that ought to be refactored to showcase their commonality. The backends don't use an intermediate AST to generate the code in the proof assistant but rather directly print code as string using the pretty pretty-printing library. If you want to start a new proof backend, the easiest solution is probably to copy an existing proof backend and tweak it until you get the right result. The code generation has to be fine-tuned to interface with a replica of the hacspec standard library in the host proof assistant, whose correspondence with the original hacspec library in Rust is part of the trusted code base. More specially, clever solutions to encode sequences and array, as well as all the different types of public and secret machine integers, and the interaction between the two (seeing a double as a string of bytes) have to be implemented through proof assistant libraries.","breadcrumbs":"For Developers » Working on the compiler » Proof backends","id":"53","title":"Proof backends"},"54":{"body":"The compiler has various unit tests that are controlled trough the language/tests files. Please enrich the unit tests bases in language-tests, negative-language-tests and test-crate as you implement new features for the compiler. The compiler can also be tested against all the hacspec cryptographic specifications by running examples/typecheck_examples.sh from the root of the repository.","breadcrumbs":"For Developers » Working on the compiler » Unit tests","id":"54","title":"Unit tests"},"55":{"body":"A list of contributors to the hacspec project. Franziskus Kiefer ( franziskuskiefer ) Denis Merigoux ( denismerigoux ) Karthik Bhargavan Tomer Yavor ( TomerHawk ) Tanmay Garg ( tanmay2004 ) Peter Schwabe ( cryptojedi ) Kaspar Schleiser ( kaspar030 ) Kasserne Tony Arcieri ( tarcieri ) If you feel you're missing from this list, feel free to add yourself in a PR.","breadcrumbs":"Contributors » Contributors","id":"55","title":"Contributors"},"6":{"body":"hacspec supports all the Rust primitive types: integers (signed and unsigned), booleans, unit, tuples. hacspec possesses some support for generic types, but only for primitive types defined by the language creators, and not for user-defined types. Type aliases are allowed in hacspec: type OneTypeAlias = u32;","breadcrumbs":"The hacspec language » Core » Basic Types","id":"6","title":"Basic Types"},"7":{"body":"hacspec forbids mutable borrows in all places. Immutable borrows are allowed in hacspec, but only for function arguments. Indeed, you can declare a function argument as immutably borrowed: fn hacspec_function(arg: &Seq) { ...\n} You can also immutably borrow a value at the call site of a function: hacspec_function(&Seq::::new(64)) In particular, return types cannot contain references, and the same is true for types inside tuples or any data structure.","breadcrumbs":"The hacspec language » Core » Borrows","id":"7","title":"Borrows"},"8":{"body":"hacspec allows the declaration of constants: const ONE_CONST : bool = false;","breadcrumbs":"The hacspec language » Core » Constants","id":"8","title":"Constants"},"9":{"body":"Inside a function body, hacspec allows regular Rust let-bindings: let x = ...; hacspec also allows mutable let bindings, and subsequent reassignments: let mut x = ...;\n...\nx = ...; This allowing of mutable variable might come as a contradiction to hacspec's philosophy of forbidding mutable state. But in fact, mutable local variables in hacspec can be translated to a completely side-effect free form with a state-passing like monadic structure. Left-hand sides of assignments support destructuring, which is currently the only way to access the members of a tuple: let (x, y) = z;","breadcrumbs":"The hacspec language » Core » Assignments","id":"9","title":"Assignments"}},"length":56,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{".":{".":{"6":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{")":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":4,"docs":{"24":{"tf":1.0},"30":{"tf":1.0},"42":{"tf":1.4142135623730951},"51":{"tf":1.0}},"x":{"6":{"4":{"2":{"6":{"5":{"df":0,"docs":{},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"1":{"0":{"0":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"2":{"1":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"6":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"12":{"tf":1.0}}},"4":{"8":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":1,"docs":{"12":{"tf":1.0}},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"6":{"4":{"df":1,"docs":{"16":{"tf":2.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"_":{"df":2,"docs":{"2":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"a":{"[":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}},"_":{"3":{"2":{"0":{"df":1,"docs":{"42":{"tf":2.23606797749979}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":3,"docs":{"20":{"tf":1.0},"26":{"tf":1.0},"42":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":2,"docs":{"26":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"10":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}},"d":{"d":{"df":2,"docs":{"42":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"a":{"df":2,"docs":{"16":{"tf":1.0},"20":{"tf":1.0}},"s":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"6":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":10,"docs":{"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"4":{"tf":1.4142135623730951},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}},"g":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":2,"docs":{"15":{"tf":1.0},"4":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.0},"2":{"tf":1.7320508075688772},"34":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":4,"docs":{"23":{"tf":1.4142135623730951},"24":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"df":12,"docs":{"14":{"tf":1.0},"16":{"tf":2.23606797749979},"2":{"tf":1.7320508075688772},"24":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":2.449489742783178},"31":{"tf":1.7320508075688772},"32":{"tf":1.7320508075688772},"35":{"tf":1.7320508075688772},"51":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"19":{"tf":1.0},"9":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.7320508075688772}}}}}},"t":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":5,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":2.0},"49":{"tf":2.0},"50":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"34":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}}},"b":{"[":{"(":{"df":0,"docs":{},"i":{"*":{"8":{")":{".":{".":{"(":{"(":{"df":0,"docs":{},"i":{"+":{"1":{")":{"*":{"8":{")":{"]":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"(":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"_":{"3":{"2":{"1":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"27":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"13":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.23606797749979}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":6,"docs":{"2":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}},"i":{"c":{"df":2,"docs":{"19":{"tf":1.0},"6":{"tf":1.0}}},"df":0,"docs":{}}},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":2.449489742783178},"42":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"35":{"tf":1.0}}}}},"df":3,"docs":{"46":{"tf":1.0},"49":{"tf":1.0},"52":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"46":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.7320508075688772}}}}}},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"25":{"tf":1.0},"30":{"tf":1.0},"53":{"tf":1.0}}}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":4,"docs":{"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"21":{"tf":1.0},"9":{"tf":1.4142135623730951}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}},"df":0,"docs":{}},"t":{"df":2,"docs":{"26":{"tf":1.0},"37":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":5,"docs":{"10":{"tf":1.0},"11":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"31":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":3,"docs":{"22":{"tf":2.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"0":{"tf":1.0},"42":{"tf":1.0}}},"l":{">":{":":{":":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":4,"docs":{"20":{"tf":1.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"8":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"2":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"31":{"tf":1.0},"7":{"tf":2.23606797749979}}}}}},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"13":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":3,"docs":{"10":{"tf":1.0},"25":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"df":1,"docs":{"50":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"52":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"20":{"tf":1.0}}}}},"n":{"d":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":4,"docs":{"16":{"tf":1.4142135623730951},"27":{"tf":1.7320508075688772},"32":{"tf":1.0},"53":{"tf":1.0}},"s":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"c":{"(":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}},"p":{"df":1,"docs":{"2":{"tf":1.0}}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"2":{"tf":1.4142135623730951},"7":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"u":{"1":{"6":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"50":{"tf":1.0}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":2,"docs":{"19":{"tf":1.0},"2":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"16":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"25":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{}}}},"f":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":3,"docs":{"0":{"tf":1.0},"25":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":2,"docs":{"2":{"tf":1.0},"33":{"tf":1.0}},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":7,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.4142135623730951},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.0}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":12,"docs":{"0":{"tf":1.0},"24":{"tf":1.7320508075688772},"4":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.7320508075688772},"47":{"tf":1.4142135623730951},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"54":{"tf":1.7320508075688772}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"25":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}},"x":{"df":1,"docs":{"4":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}}}}},"n":{"c":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"36":{"tf":1.0}}}},"df":0,"docs":{}},"d":{"1":{"df":1,"docs":{"11":{"tf":1.0}}},"2":{"df":1,"docs":{"11":{"tf":1.0}}},"df":1,"docs":{"12":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"11":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"49":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"25":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951}}}}},"df":2,"docs":{"2":{"tf":1.0},"8":{"tf":1.0}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.7320508075688772},"49":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"34":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.0},"44":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"7":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"30":{"tf":1.4142135623730951}}}},"x":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"10":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"5":{"tf":1.0},"54":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":2,"docs":{"25":{"tf":1.0},"32":{"tf":1.0}}},"t":{"df":1,"docs":{"32":{"tf":1.0}}}},"y":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"i":{"df":2,"docs":{"34":{"tf":1.0},"53":{"tf":1.0}}}},"q":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"c":{"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":4,"docs":{"1":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.7320508075688772},"46":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"3":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"1":{"tf":1.4142135623730951},"32":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"18":{"tf":1.0},"23":{"tf":1.0},"42":{"tf":1.0},"51":{"tf":2.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"d":{"(":{"*":{"df":0,"docs":{},"k":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}},"df":5,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":1.7320508075688772},"49":{"tf":1.0},"51":{"tf":2.23606797749979},"54":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"6":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"0":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":6,"docs":{"1":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"37":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":5,"docs":{"25":{"tf":1.0},"33":{"tf":1.0},"51":{"tf":1.7320508075688772},"52":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}},"y":{"df":1,"docs":{"24":{"tf":1.0}}}},"df":1,"docs":{"2":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"52":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"52":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"13":{"tf":1.0},"16":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"19":{"tf":1.7320508075688772},"2":{"tf":2.23606797749979},"20":{"tf":1.7320508075688772},"26":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"df":2,"docs":{"50":{"tf":1.0},"52":{"tf":1.0}},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":2.0}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":8,"docs":{"16":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.4142135623730951},"51":{"tf":2.6457513110645907}}}}}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"4":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":3,"docs":{"1":{"tf":1.0},"44":{"tf":1.4142135623730951},"51":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"37":{"tf":1.0},"47":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"13":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"49":{"tf":1.0}}}}}}}}}}},"v":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"15":{"tf":1.0}}}}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"21":{"tf":1.0},"52":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{".":{".":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":4,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}}}},"s":{"df":2,"docs":{"10":{"tf":1.0},"26":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":4.58257569495584}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"30":{"tf":1.0},"33":{"tf":1.0},"42":{"tf":1.0}}}}}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"48":{"tf":1.0}}}}},"o":{"d":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"m":{"df":8,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":2.0},"2":{"tf":1.7320508075688772},"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"49":{"tf":1.7320508075688772},"50":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"19":{"tf":1.0}}}}}}},"r":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":5,"docs":{"12":{"tf":1.0},"21":{"tf":2.0},"24":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"t":{"c":{"df":5,"docs":{"13":{"tf":1.0},"15":{"tf":1.0},"25":{"tf":1.4142135623730951},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"26":{"tf":1.0}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"37":{"tf":1.4142135623730951},"42":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"_":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"21":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"1":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.0},"19":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"26":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"24":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"l":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":1.0},"51":{"tf":2.0}}}}}}}},"f":{"(":{"[":{"a":{"df":1,"docs":{"2":{"tf":1.0}}},"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"8":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.0}}}}}}}},"df":2,"docs":{"1":{"tf":1.0},"46":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"1":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"50":{"tf":1.0},"54":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"55":{"tf":1.4142135623730951}}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"6":{"5":{"4":{"4":{"2":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"df":6,"docs":{"4":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0}}},"l":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"48":{"tf":1.0}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"52":{"tf":1.0},"53":{"tf":1.0}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"51":{"tf":1.0}}}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"n":{"df":5,"docs":{"2":{"tf":1.0},"27":{"tf":2.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"7":{"tf":1.0}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"42":{"tf":1.0},"47":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":6,"docs":{"12":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}}},"o":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"(":{"0":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"21":{"tf":1.0}}}}},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"x":{"df":1,"docs":{"18":{"tf":1.0}}}},":":{":":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"y":{",":{"df":0,"docs":{},"z":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"19":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"b":{"df":0,"docs":{},"i":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.4142135623730951}}}}},"df":3,"docs":{"25":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":4,"docs":{"10":{"tf":1.0},"18":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"27":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"2":{"a":{"d":{"d":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{":":{":":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"42":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}}}}},":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"b":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":3.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.4142135623730951}}}}}}},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"u":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":2,"docs":{"55":{"tf":1.0},"9":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"32":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"32":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":13,"docs":{"0":{"tf":1.0},"2":{"tf":2.0},"21":{"tf":1.0},"22":{"tf":1.0},"25":{"tf":1.4142135623730951},"27":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":2.449489742783178},"50":{"tf":1.0},"51":{"tf":2.23606797749979},"7":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}}}},"g":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"df":1,"docs":{"42":{"tf":1.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.0},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":1.4142135623730951},"6":{"tf":1.0}}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"30":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"1":{"tf":1.4142135623730951},"25":{"tf":1.0}}}},"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"21":{"tf":1.0},"24":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"51":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"44":{"tf":1.0}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{".":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"'":{"df":2,"docs":{"25":{"tf":1.0},"9":{"tf":1.0}}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"(":{"&":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"(":{"6":{"4":{"df":1,"docs":{"7":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{},"x":{"df":1,"docs":{"5":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}}},"df":38,"docs":{"0":{"tf":2.449489742783178},"1":{"tf":2.6457513110645907},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.4142135623730951},"13":{"tf":1.0},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"20":{"tf":1.0},"21":{"tf":1.4142135623730951},"22":{"tf":2.8284271247461903},"23":{"tf":1.0},"24":{"tf":1.7320508075688772},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.4142135623730951},"4":{"tf":2.23606797749979},"42":{"tf":2.23606797749979},"44":{"tf":1.0},"46":{"tf":2.0},"48":{"tf":1.0},"49":{"tf":1.4142135623730951},"5":{"tf":1.7320508075688772},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"53":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.0},"6":{"tf":1.7320508075688772},"7":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":1,"docs":{"44":{"tf":1.0}}},"l":{"df":2,"docs":{"21":{"tf":1.4142135623730951},"50":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"c":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"p":{"df":1,"docs":{"1":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"22":{"tf":1.0}}}}}},"n":{"c":{"df":3,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"11":{"tf":1.0},"51":{"tf":1.0}}}},"x":{"df":2,"docs":{"26":{"tf":1.4142135623730951},"32":{"tf":1.4142135623730951}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"46":{"tf":1.0}}}},"r":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":2,"docs":{"50":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{":":{":":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{}},"df":1,"docs":{"50":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.7320508075688772}}}}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"52":{"tf":1.0},"7":{"tf":1.7320508075688772}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.0},"24":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":4,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.7320508075688772}}}},"s":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"n":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":2,"docs":{"49":{"tf":1.0},"7":{"tf":1.0}},"x":{"df":5,"docs":{"15":{"tf":1.0},"16":{"tf":1.0},"2":{"tf":1.0},"30":{"tf":1.0},"51":{"tf":1.0}}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"20":{"tf":1.0},"24":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"1":{"tf":1.0},"42":{"tf":1.0},"48":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"49":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"25":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":8,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"50":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"12":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"a":{"d":{"df":3,"docs":{"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"50":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":9,"docs":{"10":{"tf":1.0},"2":{"tf":2.23606797749979},"24":{"tf":1.7320508075688772},"25":{"tf":2.0},"26":{"tf":1.4142135623730951},"27":{"tf":1.7320508075688772},"30":{"tf":1.0},"53":{"tf":1.0},"6":{"tf":1.0}}},"n":{"d":{"df":1,"docs":{"16":{"tf":1.0}}},"df":0,"docs":{}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}},"f":{"a":{"c":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":1,"docs":{"2":{"tf":1.0}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"30":{"tf":1.0},"37":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"'":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.0},"2":{"tf":1.0}}},"r":{"df":1,"docs":{"30":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"j":{"df":0,"docs":{},"o":{"b":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"u":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"46":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"0":{"3":{"0":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"n":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"49":{"tf":1.0}},"n":{"df":1,"docs":{"35":{"tf":1.0}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":8,"docs":{"0":{"tf":2.0},"1":{"tf":2.449489742783178},"37":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.4142135623730951},"6":{"tf":1.0}},"e":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"52":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"48":{"tf":1.0},"9":{"tf":1.0}}}},"n":{"df":1,"docs":{"30":{"tf":1.0}},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.0},"30":{"tf":1.0},"35":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"46":{"tf":1.0},"5":{"tf":1.0}}}}}},"i":{"b":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":11,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"22":{"tf":1.7320508075688772},"24":{"tf":1.0},"25":{"tf":1.0},"27":{"tf":1.0},"37":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":2.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":1,"docs":{"50":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"55":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":2.0},"24":{"tf":1.0}}}}}},"o":{"c":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":2,"docs":{"50":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"t":{"df":2,"docs":{"47":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"10":{"tf":2.0},"2":{"tf":1.0}}}},"t":{"df":1,"docs":{"25":{"tf":1.0}}},"w":{".":{".":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":2,"docs":{"37":{"tf":1.0},"48":{"tf":1.0}}}},"k":{"df":0,"docs":{},"e":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"52":{"tf":1.0}}}},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":3,"docs":{"22":{"tf":1.0},"27":{"tf":1.0},"52":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"19":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"21":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"23":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"46":{"tf":1.0},"48":{"tf":1.0}}}},"df":1,"docs":{"52":{"tf":1.0}}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"22":{"tf":2.449489742783178},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.4142135623730951},"52":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"1":{"tf":1.0}}}},"df":0,"docs":{}}},"x":{"df":1,"docs":{"12":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"2":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"11":{"tf":1.0},"30":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}}},"df":2,"docs":{"2":{"tf":1.0},"4":{"tf":1.7320508075688772}},"o":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"a":{"d":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"u":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"2":{"tf":1.4142135623730951},"7":{"tf":1.0},"9":{"tf":2.0}}}},"df":0,"docs":{}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"49":{"tf":1.0},"50":{"tf":1.0}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}}}}}}}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}}}}},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"!":{"(":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"16":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"df":0,"docs":{},"e":{"d":{"df":4,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"49":{"tf":1.7320508075688772},"52":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"g":{"df":1,"docs":{"54":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"df":7,"docs":{"16":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"48":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"16":{"tf":1.0}}}}},"n":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"34":{"tf":1.0}},"e":{"df":1,"docs":{"48":{"tf":1.0}}}},"t":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":7,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"2":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"24":{"tf":1.7320508075688772}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":1,"docs":{"42":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.0},"26":{"tf":1.0}}}}}},"n":{"df":3,"docs":{"18":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.0}},"e":{"_":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":12,"docs":{"15":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"<":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":3,"docs":{"11":{"tf":1.0},"20":{"tf":1.0},"4":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"37":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"_":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"t":{"df":2,"docs":{"0":{"tf":1.0},"37":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"30":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"34":{"tf":1.0}}}},"df":1,"docs":{"34":{"tf":1.4142135623730951}}}}},"p":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":2.0}}}}}},"df":0,"docs":{},"t":{"df":3,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"53":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"31":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"7":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":3,"docs":{"47":{"tf":1.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"19":{"tf":1.0},"2":{"tf":2.23606797749979},"21":{"tf":1.0},"4":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":2.6457513110645907}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"21":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"52":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"46":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"7":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"1":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.0}}}}},"p":{"df":1,"docs":{"15":{"tf":1.0}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"6":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"51":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"55":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"12":{"tf":1.0}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"33":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0},"6":{"tf":1.4142135623730951}}}}},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":6,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.4142135623730951},"2":{"tf":1.0},"22":{"tf":1.4142135623730951},"4":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"4":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.6457513110645907}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}}},"t":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"1":{"tf":1.0}}}},"i":{"d":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"15":{"tf":1.0},"27":{"tf":1.0},"37":{"tf":1.4142135623730951},"48":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":3,"docs":{"13":{"tf":2.0},"27":{"tf":2.0},"50":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"25":{"tf":1.0}}}}}}},"df":5,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"15":{"tf":1.0},"36":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.449489742783178}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":2.23606797749979}}}},"df":0,"docs":{}}}},"df":1,"docs":{"0":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"21":{"tf":1.0},"25":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"51":{"tf":1.0}}}},"d":{"df":1,"docs":{"31":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":5,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"2":{"tf":1.0},"7":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":4,"docs":{"12":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":1,"docs":{"53":{"tf":1.0}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"37":{"tf":1.0},"54":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.4142135623730951}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"15":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.0},"52":{"tf":1.0}}}},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"1":{"tf":1.0},"10":{"tf":1.4142135623730951},"17":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}},":":{":":{"<":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"df":0,"docs":{},"u":{"8":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"<":{"df":0,"docs":{},"t":{",":{"df":0,"docs":{},"u":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}},"df":3,"docs":{"20":{"tf":1.0},"21":{"tf":1.0},"53":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"o":{"df":1,"docs":{"51":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"2":{"tf":1.0},"21":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"7":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}}},"n":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"54":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"'":{"df":2,"docs":{"4":{"tf":1.0},"51":{"tf":1.0}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"df":19,"docs":{"0":{"tf":1.0},"1":{"tf":2.449489742783178},"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"16":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"4":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"51":{"tf":1.7320508075688772},"53":{"tf":1.0},"6":{"tf":1.0},"9":{"tf":1.0}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"48":{"tf":1.0}}}},"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"7":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"w":{"a":{"b":{"df":0,"docs":{},"e":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"2":{"tf":1.4142135623730951}},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"33":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":4,"docs":{"16":{"tf":1.0},"2":{"tf":1.0},"25":{"tf":2.23606797749979},"53":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"37":{"tf":1.0},"44":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"21":{"tf":1.0},"53":{"tf":1.0}},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"34":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"<":{"df":0,"docs":{},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"8":{"df":2,"docs":{"15":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}}},"df":4,"docs":{"15":{"tf":2.23606797749979},"2":{"tf":1.0},"32":{"tf":1.0},"35":{"tf":1.0}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":12,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"2":{"tf":1.4142135623730951},"24":{"tf":1.0},"27":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":2.449489742783178},"31":{"tf":1.7320508075688772},"32":{"tf":1.4142135623730951},"36":{"tf":2.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"0":{"tf":1.0}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"37":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"22":{"tf":1.7320508075688772},"49":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}},"df":1,"docs":{"6":{"tf":1.0}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.0},"42":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":3,"docs":{"18":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"2":{"tf":1.0},"7":{"tf":1.0}}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"16":{"tf":1.7320508075688772},"26":{"tf":1.0},"32":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"36":{"tf":1.4142135623730951}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"47":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"49":{"tf":1.0},"53":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"49":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"f":{"df":11,"docs":{"0":{"tf":1.4142135623730951},"1":{"tf":1.7320508075688772},"16":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"15":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"25":{"tf":1.0},"27":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"9":{"tf":1.4142135623730951}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"5":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"35":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"12":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"2":{"tf":1.7320508075688772},"32":{"tf":1.0},"53":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":2.6457513110645907},"2":{"tf":1.7320508075688772},"20":{"tf":1.0},"21":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":8,"docs":{"25":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.7320508075688772},"53":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"9":{"tf":1.0}}}},"t":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0},"51":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":10,"docs":{"15":{"tf":1.0},"17":{"tf":1.0},"19":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"21":{"tf":1.0},"31":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"9":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"42":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"4":{"tf":1.0}}}}}}}},"t":{"(":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":3,"docs":{"25":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":1,"docs":{"26":{"tf":1.0}}}},"n":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"y":{"2":{"0":{"0":{"4":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"4":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"_":{"a":{"d":{"d":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.449489742783178},"43":{"tf":1.0},"54":{"tf":2.6457513110645907}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"37":{"tf":1.0}}},"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"20":{"tf":1.0},"51":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"53":{"tf":1.0}}}}}}},"u":{"df":2,"docs":{"18":{"tf":1.0},"34":{"tf":1.0}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"25":{"tf":1.0}}},"df":3,"docs":{"15":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"p":{"df":3,"docs":{"16":{"tf":1.0},"21":{"tf":1.0},"5":{"tf":1.0}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}}}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.4142135623730951},"30":{"tf":1.0},"37":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":6,"docs":{"13":{"tf":1.0},"27":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"y":{"df":1,"docs":{"49":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"e":{"df":2,"docs":{"12":{"tf":1.0},"7":{"tf":1.0}},"|":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"53":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":4,"docs":{"2":{"tf":1.7320508075688772},"6":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":4,"docs":{"25":{"tf":1.0},"30":{"tf":1.0},"34":{"tf":1.0},"53":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}}}}},"y":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{":":{"b":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":4,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":2.0}},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":23,"docs":{"15":{"tf":1.7320508075688772},"16":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.6457513110645907},"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":2.0},"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"30":{"tf":1.7320508075688772},"32":{"tf":1.0},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.8284271247461903},"52":{"tf":1.4142135623730951},"53":{"tf":1.0},"6":{"tf":2.6457513110645907},"7":{"tf":1.4142135623730951}}}}}},"u":{"1":{"2":{"8":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"6":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":1,"docs":{"27":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"3":{"2":{"df":3,"docs":{"24":{"tf":1.0},"25":{"tf":1.4142135623730951},"6":{"tf":1.0}}},"df":0,"docs":{}},"6":{"4":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":4,"docs":{"19":{"tf":1.0},"24":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"8":{"(":{"df":0,"docs":{},"e":{")":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"(":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":4,"docs":{"16":{"tf":1.7320508075688772},"25":{"tf":1.4142135623730951},"32":{"tf":1.0},"42":{"tf":1.0}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"19":{"tf":1.0}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"t":{"df":3,"docs":{"2":{"tf":2.0},"54":{"tf":1.7320508075688772},"6":{"tf":1.0}},"|":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"34":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"d":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"30":{"tf":1.0},"6":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}},"df":17,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"22":{"tf":2.0},"26":{"tf":1.0},"27":{"tf":1.0},"30":{"tf":1.4142135623730951},"34":{"tf":1.0},"4":{"tf":1.7320508075688772},"42":{"tf":2.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"1":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"6":{"tf":1.0}}}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"16":{"tf":1.4142135623730951},"24":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"1":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"u":{"df":6,"docs":{"19":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.0},"50":{"tf":1.7320508075688772},"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":2,"docs":{"52":{"tf":1.0},"54":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"15":{"tf":1.7320508075688772}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"0":{"tf":1.0},"43":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"19":{"tf":1.0},"21":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.4142135623730951}},"f":{"df":3,"docs":{"0":{"tf":1.0},"16":{"tf":1.0},"40":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"13":{"tf":1.0},"16":{"tf":1.0},"26":{"tf":1.0},"34":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}}}}}}}},"i":{"a":{"df":3,"docs":{"21":{"tf":1.0},"32":{"tf":1.0},"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"27":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"42":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"53":{"tf":1.0}}}},"y":{"df":5,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0},"9":{"tf":1.0}}}},"df":1,"docs":{"24":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"11":{"tf":1.0},"53":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"31":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":4,"docs":{"1":{"tf":1.0},"22":{"tf":1.7320508075688772},"26":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"c":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"24":{"tf":1.0},"33":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"24":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":5,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"24":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"31":{"tf":1.0}}}}}}},"x":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":9,"docs":{"11":{"tf":1.0},"12":{"tf":1.4142135623730951},"19":{"tf":1.0},"2":{"tf":2.8284271247461903},"20":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"42":{"tf":2.0},"9":{"tf":2.0}}},"y":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"'":{"df":0,"docs":{},"r":{"df":2,"docs":{"46":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}},"z":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"9":{"tf":1.0}}}}},"breadcrumbs":{"root":{"0":{".":{".":{"6":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{")":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":4,"docs":{"24":{"tf":1.0},"30":{"tf":1.0},"42":{"tf":1.4142135623730951},"51":{"tf":1.0}},"x":{"6":{"4":{"2":{"6":{"5":{"df":0,"docs":{},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"1":{"0":{"0":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"2":{"1":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"6":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"12":{"tf":1.0}}},"4":{"8":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":1,"docs":{"12":{"tf":1.0}},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"6":{"4":{"df":1,"docs":{"16":{"tf":2.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"_":{"df":2,"docs":{"2":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"a":{"[":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}},"_":{"3":{"2":{"0":{"df":1,"docs":{"42":{"tf":2.23606797749979}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":3,"docs":{"20":{"tf":1.0},"26":{"tf":1.0},"42":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":2,"docs":{"26":{"tf":1.4142135623730951},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"10":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}},"d":{"d":{"df":2,"docs":{"42":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"a":{"df":2,"docs":{"16":{"tf":1.0},"20":{"tf":1.0}},"s":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"6":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":10,"docs":{"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"4":{"tf":1.4142135623730951},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}},"g":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":2,"docs":{"15":{"tf":1.0},"4":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.0},"2":{"tf":1.7320508075688772},"34":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":6,"docs":{"23":{"tf":2.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"27":{"tf":1.0},"30":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"df":16,"docs":{"14":{"tf":1.7320508075688772},"15":{"tf":1.0},"16":{"tf":2.6457513110645907},"2":{"tf":1.7320508075688772},"24":{"tf":1.0},"28":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772},"30":{"tf":2.6457513110645907},"31":{"tf":2.0},"32":{"tf":2.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":2.23606797749979},"36":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"19":{"tf":1.0},"9":{"tf":1.7320508075688772}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.7320508075688772}}}}}},"t":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":5,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":2.23606797749979},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"34":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}}},"b":{"[":{"(":{"df":0,"docs":{},"i":{"*":{"8":{")":{".":{".":{"(":{"(":{"df":0,"docs":{},"i":{"+":{"1":{")":{"*":{"8":{")":{"]":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"(":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"_":{"3":{"2":{"1":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"27":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"13":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":6,"docs":{"2":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.7320508075688772},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}},"i":{"c":{"df":2,"docs":{"19":{"tf":1.0},"6":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":2.449489742783178},"42":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"35":{"tf":1.0}}}}},"df":3,"docs":{"46":{"tf":1.0},"49":{"tf":1.0},"52":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"46":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.7320508075688772}}}}}},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"25":{"tf":1.0},"30":{"tf":1.0},"53":{"tf":1.0}}}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":4,"docs":{"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"21":{"tf":1.0},"9":{"tf":1.4142135623730951}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}},"df":0,"docs":{}},"t":{"df":2,"docs":{"26":{"tf":1.0},"37":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":5,"docs":{"10":{"tf":1.0},"11":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"31":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":3,"docs":{"22":{"tf":2.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"0":{"tf":1.0},"42":{"tf":1.0}}},"l":{">":{":":{":":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":4,"docs":{"20":{"tf":1.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"8":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"2":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"31":{"tf":1.0},"7":{"tf":2.449489742783178}}}}}},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"13":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":3,"docs":{"10":{"tf":1.0},"25":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"df":1,"docs":{"50":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"52":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"20":{"tf":1.0}}}}},"n":{"d":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":4,"docs":{"16":{"tf":1.4142135623730951},"27":{"tf":2.0},"32":{"tf":1.0},"53":{"tf":1.0}},"s":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"c":{"(":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}},"p":{"df":1,"docs":{"2":{"tf":1.0}}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"2":{"tf":1.4142135623730951},"7":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"u":{"1":{"6":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"50":{"tf":1.0}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":2,"docs":{"19":{"tf":1.0},"2":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"16":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"25":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{}}}},"f":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":3,"docs":{"0":{"tf":1.0},"25":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.7320508075688772}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":2,"docs":{"2":{"tf":1.0},"33":{"tf":1.0}},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":7,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.7320508075688772},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.0}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":14,"docs":{"0":{"tf":1.0},"24":{"tf":1.7320508075688772},"4":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.7320508075688772},"46":{"tf":2.0},"47":{"tf":1.7320508075688772},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"50":{"tf":1.4142135623730951},"51":{"tf":2.8284271247461903},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":2.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"25":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}},"x":{"df":1,"docs":{"4":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}}}}},"n":{"c":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"36":{"tf":1.0}}}},"df":0,"docs":{}},"d":{"1":{"df":1,"docs":{"11":{"tf":1.0}}},"2":{"df":1,"docs":{"11":{"tf":1.0}}},"df":1,"docs":{"12":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"11":{"tf":2.0},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"49":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"25":{"tf":1.4142135623730951},"8":{"tf":1.7320508075688772}}}}},"df":2,"docs":{"2":{"tf":1.0},"8":{"tf":1.0}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.7320508075688772},"49":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"34":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.0},"44":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"7":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"30":{"tf":1.4142135623730951}}}},"x":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"10":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":2.0}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"5":{"tf":1.0},"54":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":2,"docs":{"25":{"tf":1.0},"32":{"tf":1.4142135623730951}}},"t":{"df":1,"docs":{"32":{"tf":1.0}}}},"y":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"i":{"df":2,"docs":{"34":{"tf":1.0},"53":{"tf":1.0}}}},"q":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"c":{"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":4,"docs":{"1":{"tf":1.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"46":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":11,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"3":{"tf":1.7320508075688772},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"1":{"tf":1.4142135623730951},"32":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"18":{"tf":1.0},"23":{"tf":1.0},"42":{"tf":1.0},"51":{"tf":2.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"d":{"(":{"*":{"df":0,"docs":{},"k":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}},"df":5,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":2.0},"49":{"tf":1.0},"51":{"tf":2.23606797749979},"54":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"6":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"0":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":6,"docs":{"1":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"37":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":5,"docs":{"25":{"tf":1.0},"33":{"tf":1.0},"51":{"tf":2.0},"52":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}},"y":{"df":1,"docs":{"24":{"tf":1.0}}}},"df":1,"docs":{"2":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"52":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"52":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"13":{"tf":1.0},"16":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"19":{"tf":1.7320508075688772},"2":{"tf":2.23606797749979},"20":{"tf":1.7320508075688772},"26":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"df":2,"docs":{"50":{"tf":1.0},"52":{"tf":1.0}},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":2.0}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":8,"docs":{"16":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.4142135623730951},"51":{"tf":2.6457513110645907}}}}}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"4":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":12,"docs":{"1":{"tf":1.0},"44":{"tf":2.0},"45":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"37":{"tf":1.0},"47":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"13":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"49":{"tf":1.0}}}}}}}}}}},"v":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"15":{"tf":1.0}}}}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"21":{"tf":1.0},"52":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{".":{".":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":4,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}}}},"s":{"df":2,"docs":{"10":{"tf":1.0},"26":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":4.58257569495584}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"30":{"tf":1.0},"33":{"tf":1.0},"42":{"tf":1.0}}}}}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"48":{"tf":1.0}}}}},"o":{"d":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"m":{"df":8,"docs":{"17":{"tf":2.0},"18":{"tf":1.4142135623730951},"19":{"tf":2.449489742783178},"2":{"tf":1.7320508075688772},"20":{"tf":1.7320508075688772},"21":{"tf":1.0},"49":{"tf":1.7320508075688772},"50":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"19":{"tf":1.0}}}}}}},"r":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":5,"docs":{"12":{"tf":1.0},"21":{"tf":2.449489742783178},"24":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"t":{"c":{"df":5,"docs":{"13":{"tf":1.0},"15":{"tf":1.0},"25":{"tf":1.4142135623730951},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"26":{"tf":1.0}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"37":{"tf":2.0},"42":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"_":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"21":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"1":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.23606797749979},"19":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"26":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"24":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"l":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":1.0},"51":{"tf":2.23606797749979}}}}}}}},"f":{"(":{"[":{"a":{"df":1,"docs":{"2":{"tf":1.0}}},"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"8":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.0}}}}}}}},"df":2,"docs":{"1":{"tf":1.0},"46":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"1":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"50":{"tf":1.0},"54":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"55":{"tf":1.4142135623730951}}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"6":{"5":{"4":{"4":{"2":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"df":6,"docs":{"4":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0}}},"l":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"48":{"tf":1.0}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"52":{"tf":1.0},"53":{"tf":1.0}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"51":{"tf":1.0}}}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"n":{"df":5,"docs":{"2":{"tf":1.0},"27":{"tf":2.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"7":{"tf":1.0}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"42":{"tf":1.0},"47":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":6,"docs":{"12":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}}},"o":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"(":{"0":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"21":{"tf":1.0}}}}},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"x":{"df":1,"docs":{"18":{"tf":1.0}}}},":":{":":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"y":{",":{"df":0,"docs":{},"z":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"19":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"b":{"df":0,"docs":{},"i":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.4142135623730951}}}}},"df":3,"docs":{"25":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":4,"docs":{"10":{"tf":1.0},"18":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"27":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"2":{"a":{"d":{"d":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{":":{":":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"42":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}}}}},":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"b":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":3.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.4142135623730951}}}}}}},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"u":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":2,"docs":{"55":{"tf":1.0},"9":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"32":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"32":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":13,"docs":{"0":{"tf":1.0},"2":{"tf":2.0},"21":{"tf":1.0},"22":{"tf":1.0},"25":{"tf":1.4142135623730951},"27":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":2.6457513110645907},"50":{"tf":1.0},"51":{"tf":2.23606797749979},"7":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}}}},"g":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"df":1,"docs":{"42":{"tf":1.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.0},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":1.4142135623730951},"6":{"tf":1.0}}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"30":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"1":{"tf":1.4142135623730951},"25":{"tf":1.0}}}},"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"21":{"tf":1.0},"24":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"51":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"44":{"tf":1.0}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{".":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"'":{"df":2,"docs":{"25":{"tf":1.0},"9":{"tf":1.0}}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"(":{"&":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"(":{"6":{"4":{"df":1,"docs":{"7":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{},"x":{"df":1,"docs":{"5":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}}},"df":48,"docs":{"0":{"tf":2.449489742783178},"1":{"tf":3.0},"10":{"tf":1.4142135623730951},"11":{"tf":1.4142135623730951},"12":{"tf":1.7320508075688772},"13":{"tf":1.4142135623730951},"14":{"tf":1.0},"15":{"tf":1.7320508075688772},"16":{"tf":1.4142135623730951},"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"19":{"tf":1.7320508075688772},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.7320508075688772},"22":{"tf":3.1622776601683795},"23":{"tf":1.4142135623730951},"24":{"tf":2.0},"25":{"tf":1.4142135623730951},"26":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"4":{"tf":2.449489742783178},"42":{"tf":2.23606797749979},"44":{"tf":1.0},"46":{"tf":2.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"5":{"tf":2.0},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"53":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.0},"6":{"tf":2.0},"7":{"tf":1.7320508075688772},"8":{"tf":1.4142135623730951},"9":{"tf":2.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":1,"docs":{"44":{"tf":1.0}}},"l":{"df":2,"docs":{"21":{"tf":2.0},"50":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"c":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"p":{"df":1,"docs":{"1":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"22":{"tf":1.0}}}}}},"n":{"c":{"df":3,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"11":{"tf":1.0},"51":{"tf":1.0}}}},"x":{"df":2,"docs":{"26":{"tf":1.4142135623730951},"32":{"tf":1.4142135623730951}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"46":{"tf":1.4142135623730951}}}},"r":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":2,"docs":{"50":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{":":{":":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{}},"df":1,"docs":{"50":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.7320508075688772}}}}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"52":{"tf":1.0},"7":{"tf":1.7320508075688772}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.0},"24":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":4,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.7320508075688772}}}},"s":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"n":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":2,"docs":{"49":{"tf":1.0},"7":{"tf":1.0}},"x":{"df":5,"docs":{"15":{"tf":1.0},"16":{"tf":1.0},"2":{"tf":1.0},"30":{"tf":1.0},"51":{"tf":1.0}}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"20":{"tf":1.0},"24":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"1":{"tf":1.0},"42":{"tf":1.0},"48":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"49":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"25":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":8,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"50":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"12":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"a":{"d":{"df":3,"docs":{"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"50":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":9,"docs":{"10":{"tf":1.0},"2":{"tf":2.23606797749979},"24":{"tf":1.7320508075688772},"25":{"tf":2.23606797749979},"26":{"tf":1.7320508075688772},"27":{"tf":2.0},"30":{"tf":1.0},"53":{"tf":1.0},"6":{"tf":1.0}}},"n":{"d":{"df":1,"docs":{"16":{"tf":1.0}}},"df":0,"docs":{}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}},"f":{"a":{"c":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":1,"docs":{"2":{"tf":1.0}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"30":{"tf":1.0},"37":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":2.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"'":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.0},"2":{"tf":1.0}}},"r":{"df":1,"docs":{"30":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"j":{"df":0,"docs":{},"o":{"b":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"u":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"46":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"0":{"3":{"0":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"n":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"49":{"tf":1.0}},"n":{"df":1,"docs":{"35":{"tf":1.0}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":26,"docs":{"0":{"tf":2.0},"1":{"tf":2.8284271247461903},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"3":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":1.4142135623730951},"51":{"tf":1.0},"54":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}},"e":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"52":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"48":{"tf":1.0},"9":{"tf":1.0}}}},"n":{"df":1,"docs":{"30":{"tf":1.0}},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.0},"30":{"tf":1.0},"35":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"46":{"tf":1.4142135623730951},"5":{"tf":1.0}}}}}},"i":{"b":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":22,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"22":{"tf":2.23606797749979},"23":{"tf":1.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"27":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":2.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":1,"docs":{"50":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"55":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":2.0},"24":{"tf":1.0}}}}}},"o":{"c":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":2,"docs":{"50":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"t":{"df":2,"docs":{"47":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"10":{"tf":2.23606797749979},"2":{"tf":1.0}}}},"t":{"df":1,"docs":{"25":{"tf":1.0}}},"w":{".":{".":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":2,"docs":{"37":{"tf":1.0},"48":{"tf":1.0}}}},"k":{"df":0,"docs":{},"e":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"52":{"tf":1.0}}}},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":3,"docs":{"22":{"tf":1.0},"27":{"tf":1.0},"52":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"19":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"21":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"23":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"46":{"tf":1.0},"48":{"tf":1.0}}}},"df":1,"docs":{"52":{"tf":1.0}}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"22":{"tf":2.449489742783178},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.4142135623730951},"52":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"1":{"tf":1.0}}}},"df":0,"docs":{}}},"x":{"df":1,"docs":{"12":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"2":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"11":{"tf":1.0},"30":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}}},"df":2,"docs":{"2":{"tf":1.0},"4":{"tf":2.0}},"o":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"a":{"d":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"u":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"2":{"tf":1.4142135623730951},"7":{"tf":1.0},"9":{"tf":2.0}}}},"df":0,"docs":{}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"49":{"tf":1.0},"50":{"tf":1.4142135623730951}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}}}}}}}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}}}}},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"!":{"(":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"16":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"df":0,"docs":{},"e":{"d":{"df":4,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"49":{"tf":1.7320508075688772},"52":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"g":{"df":1,"docs":{"54":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"df":7,"docs":{"16":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"48":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"16":{"tf":1.0}}}}},"n":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"34":{"tf":1.0}},"e":{"df":1,"docs":{"48":{"tf":1.0}}}},"t":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":7,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"2":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"24":{"tf":2.0}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":1,"docs":{"42":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.0},"26":{"tf":1.0}}}}}},"n":{"df":3,"docs":{"18":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.0}},"e":{"_":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":15,"docs":{"15":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.0},"28":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772},"30":{"tf":1.7320508075688772},"31":{"tf":1.7320508075688772},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.7320508075688772},"36":{"tf":1.7320508075688772}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"<":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":3,"docs":{"11":{"tf":1.0},"20":{"tf":1.4142135623730951},"4":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"37":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"47":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"_":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"t":{"df":2,"docs":{"0":{"tf":1.0},"37":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"30":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"34":{"tf":1.4142135623730951}}}},"df":1,"docs":{"34":{"tf":1.4142135623730951}}}}},"p":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":2.0}}}}}},"df":0,"docs":{},"t":{"df":3,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"53":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"31":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"7":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":3,"docs":{"47":{"tf":1.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"19":{"tf":1.0},"2":{"tf":2.23606797749979},"21":{"tf":1.0},"4":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":2.6457513110645907}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"21":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"52":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"46":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"7":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"1":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.0}}}}},"p":{"df":1,"docs":{"15":{"tf":1.0}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"6":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"51":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"55":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"12":{"tf":1.0}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"33":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0},"6":{"tf":1.4142135623730951}}}}},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":6,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.4142135623730951},"2":{"tf":1.0},"22":{"tf":1.4142135623730951},"4":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"4":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.8284271247461903}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}}},"t":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"1":{"tf":1.0}}}},"i":{"d":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"15":{"tf":1.0},"27":{"tf":1.0},"37":{"tf":1.4142135623730951},"48":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":3,"docs":{"13":{"tf":2.0},"27":{"tf":2.0},"50":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"25":{"tf":1.0}}}}}}},"df":5,"docs":{"25":{"tf":1.7320508075688772},"26":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"15":{"tf":1.0},"36":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.6457513110645907}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":2.449489742783178}}}},"df":0,"docs":{}}}},"df":1,"docs":{"0":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"21":{"tf":1.0},"25":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"51":{"tf":1.0}}}},"d":{"df":1,"docs":{"31":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":5,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"2":{"tf":1.0},"7":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":4,"docs":{"12":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":1,"docs":{"53":{"tf":1.0}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"37":{"tf":1.0},"54":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.4142135623730951}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"15":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.4142135623730951},"52":{"tf":1.0}}}},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"1":{"tf":1.0},"10":{"tf":1.4142135623730951},"17":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}},":":{":":{"<":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"df":0,"docs":{},"u":{"8":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"<":{"df":0,"docs":{},"t":{",":{"df":0,"docs":{},"u":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}},"df":3,"docs":{"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"53":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"o":{"df":1,"docs":{"51":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"2":{"tf":1.0},"21":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"7":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}}},"n":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"54":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"'":{"df":2,"docs":{"4":{"tf":1.0},"51":{"tf":1.0}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"df":19,"docs":{"0":{"tf":1.0},"1":{"tf":2.449489742783178},"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"16":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"4":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.4142135623730951},"49":{"tf":2.0},"50":{"tf":1.0},"51":{"tf":1.7320508075688772},"53":{"tf":1.0},"6":{"tf":1.0},"9":{"tf":1.0}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"48":{"tf":1.0}}}},"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"7":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"w":{"a":{"b":{"df":0,"docs":{},"e":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"2":{"tf":1.4142135623730951}},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"33":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"t":{"df":4,"docs":{"16":{"tf":1.0},"2":{"tf":1.0},"25":{"tf":2.449489742783178},"53":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"37":{"tf":1.0},"44":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"21":{"tf":1.0},"53":{"tf":1.0}},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"34":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"<":{"df":0,"docs":{},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"8":{"df":2,"docs":{"15":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}}},"df":4,"docs":{"15":{"tf":2.23606797749979},"2":{"tf":1.0},"32":{"tf":1.0},"35":{"tf":1.0}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":16,"docs":{"14":{"tf":1.7320508075688772},"15":{"tf":1.7320508075688772},"16":{"tf":1.0},"2":{"tf":1.4142135623730951},"24":{"tf":1.0},"27":{"tf":1.4142135623730951},"28":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772},"30":{"tf":2.6457513110645907},"31":{"tf":2.0},"32":{"tf":1.7320508075688772},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":2.449489742783178},"53":{"tf":1.0}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"0":{"tf":1.0}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"37":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"22":{"tf":1.7320508075688772},"49":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}},"df":1,"docs":{"6":{"tf":1.0}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.0},"42":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":3,"docs":{"18":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"2":{"tf":1.0},"7":{"tf":1.0}}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"16":{"tf":1.7320508075688772},"26":{"tf":1.0},"32":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"36":{"tf":1.4142135623730951}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"47":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"49":{"tf":1.0},"53":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"49":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"f":{"df":11,"docs":{"0":{"tf":1.4142135623730951},"1":{"tf":1.7320508075688772},"16":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.4142135623730951},"35":{"tf":1.4142135623730951},"36":{"tf":1.4142135623730951},"37":{"tf":1.0},"39":{"tf":1.7320508075688772},"51":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"15":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"25":{"tf":1.0},"27":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"9":{"tf":1.4142135623730951}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.23606797749979},"2":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"5":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"35":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":15,"docs":{"22":{"tf":1.7320508075688772},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"12":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"2":{"tf":1.7320508075688772},"32":{"tf":1.0},"53":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"17":{"tf":2.0},"18":{"tf":3.0},"19":{"tf":1.0},"2":{"tf":1.7320508075688772},"20":{"tf":1.4142135623730951},"21":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":8,"docs":{"25":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.7320508075688772},"53":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"9":{"tf":1.0}}}},"t":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0},"51":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":10,"docs":{"15":{"tf":1.0},"17":{"tf":1.0},"19":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"21":{"tf":1.0},"31":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"9":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"42":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"4":{"tf":1.0}}}}}}}},"t":{"(":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":3,"docs":{"25":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":1,"docs":{"26":{"tf":1.0}}}},"n":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"y":{"2":{"0":{"0":{"4":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"4":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"_":{"a":{"d":{"d":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.449489742783178},"43":{"tf":1.7320508075688772},"54":{"tf":2.8284271247461903}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"37":{"tf":1.0}}},"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"20":{"tf":1.0},"51":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"53":{"tf":1.0}}}}}}},"u":{"df":2,"docs":{"18":{"tf":1.0},"34":{"tf":1.0}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"25":{"tf":1.0}}},"df":3,"docs":{"15":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"p":{"df":3,"docs":{"16":{"tf":1.0},"21":{"tf":1.0},"5":{"tf":1.0}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}}}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"37":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":6,"docs":{"13":{"tf":1.0},"27":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"y":{"df":1,"docs":{"49":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"e":{"df":2,"docs":{"12":{"tf":1.0},"7":{"tf":1.0}},"|":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"53":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":4,"docs":{"2":{"tf":1.7320508075688772},"6":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":4,"docs":{"25":{"tf":1.0},"30":{"tf":1.0},"34":{"tf":1.0},"53":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}}}}},"y":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{":":{"b":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":4,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":2.23606797749979}},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":23,"docs":{"15":{"tf":1.7320508075688772},"16":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.6457513110645907},"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":2.0},"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"30":{"tf":1.7320508075688772},"32":{"tf":1.0},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.8284271247461903},"52":{"tf":1.4142135623730951},"53":{"tf":1.0},"6":{"tf":2.8284271247461903},"7":{"tf":1.4142135623730951}}}}}},"u":{"1":{"2":{"8":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"6":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":1,"docs":{"27":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"3":{"2":{"df":3,"docs":{"24":{"tf":1.0},"25":{"tf":1.4142135623730951},"6":{"tf":1.0}}},"df":0,"docs":{}},"6":{"4":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":4,"docs":{"19":{"tf":1.0},"24":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"8":{"(":{"df":0,"docs":{},"e":{")":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"(":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":4,"docs":{"16":{"tf":1.7320508075688772},"25":{"tf":1.4142135623730951},"32":{"tf":1.0},"42":{"tf":1.0}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"19":{"tf":1.0}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"t":{"df":3,"docs":{"2":{"tf":2.0},"54":{"tf":2.0},"6":{"tf":1.0}},"|":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"34":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"d":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"30":{"tf":1.0},"6":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"g":{"df":6,"docs":{"38":{"tf":1.7320508075688772},"39":{"tf":1.0},"40":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.0}}}},"df":17,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"22":{"tf":2.0},"26":{"tf":1.0},"27":{"tf":1.0},"30":{"tf":1.4142135623730951},"34":{"tf":1.0},"4":{"tf":1.7320508075688772},"42":{"tf":2.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"1":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"6":{"tf":1.0}}}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"16":{"tf":1.4142135623730951},"24":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"1":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"u":{"df":6,"docs":{"19":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.0},"50":{"tf":1.7320508075688772},"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":2,"docs":{"52":{"tf":1.0},"54":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"15":{"tf":1.7320508075688772}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"0":{"tf":1.0},"43":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"19":{"tf":1.0},"21":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.4142135623730951}},"f":{"df":5,"docs":{"0":{"tf":1.0},"16":{"tf":1.0},"40":{"tf":1.7320508075688772},"41":{"tf":1.0},"42":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"13":{"tf":1.0},"16":{"tf":1.0},"26":{"tf":1.0},"34":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}}}}}}}},"i":{"a":{"df":3,"docs":{"21":{"tf":1.0},"32":{"tf":1.0},"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"27":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":2.0}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"42":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"53":{"tf":1.0}}}},"y":{"df":5,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0},"9":{"tf":1.0}}}},"df":1,"docs":{"24":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"11":{"tf":1.0},"53":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"31":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":4,"docs":{"1":{"tf":1.0},"22":{"tf":1.7320508075688772},"26":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"c":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"24":{"tf":1.0},"33":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"24":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":14,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"24":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.7320508075688772},"46":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"31":{"tf":1.0}}}}}}},"x":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":9,"docs":{"11":{"tf":1.0},"12":{"tf":1.4142135623730951},"19":{"tf":1.0},"2":{"tf":2.8284271247461903},"20":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"42":{"tf":2.0},"9":{"tf":2.0}}},"y":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"'":{"df":0,"docs":{},"r":{"df":2,"docs":{"46":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}},"z":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"9":{"tf":1.0}}}}},"title":{"root":{"a":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}}}}},"r":{"a":{"df":0,"docs":{},"y":{"df":5,"docs":{"14":{"tf":1.0},"16":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"9":{"tf":1.0}}}}}},"t":{"df":2,"docs":{"48":{"tf":1.0},"49":{"tf":1.0}}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"30":{"tf":1.0}}},"i":{"c":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"7":{"tf":1.0}}}}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"29":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"45":{"tf":1.0}}}}}},"n":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"11":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"32":{"tf":1.0}}}}}}},"q":{"df":1,"docs":{"41":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"3":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"44":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"17":{"tf":1.0},"19":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"21":{"tf":1.0}}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"12":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}}}}}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":4,"docs":{"1":{"tf":1.0},"22":{"tf":1.0},"3":{"tf":1.0},"48":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":3,"docs":{"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0}}}},"r":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"1":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"i":{"b":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"24":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"28":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":0,"docs":{}}},"w":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"34":{"tf":1.0}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"33":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":5,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":3,"docs":{"35":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"17":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"43":{"tf":1.0},"54":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"30":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"6":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"43":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"45":{"tf":1.0}}}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}}); \ No newline at end of file diff --git a/archive/searchindex.json b/archive/searchindex.json new file mode 100644 index 0000000..43873a5 --- /dev/null +++ b/archive/searchindex.json @@ -0,0 +1 @@ +{"doc_urls":["index.html#introduction","language/index.html#the-hacspec-language","language/syntax.html#syntax","language/core.html#the-core-of-hacspec","language/core.html#crates-and-modules","language/core.html#functions","language/core.html#basic-types","language/core.html#borrows","language/core.html#constants","language/core.html#assignments","language/core.html#loops","language/core.html#conditionals","language/core.html#statements-and-expressions","language/core.html#visibility","language/seq.html#sequences-and-arrays","language/seq.html#sequences","language/seq.html#arrays","language/enums.html#structs-and-enums","language/enums.html#structs","language/enums.html#enums","language/enums.html#option-and-result","language/errors.html#error-handling","std/index.html#the-hacspec-std-library","std/arithmetic.html#arithmetic","std/arithmetic.html#the-numeric-trait","std/arithmetic.html#public-and-secret-integers","std/arithmetic.html#abstract-integers","std/arithmetic.html#integers-as-bytes","std/seq.html#sequence-and-array-operations","std/seq.html#operations-common-to-sequences-and-arrays","std/seq.html#base-traits","std/seq.html#chunking","std/seq.html#conversions","std/seq.html#secrecy","std/seq.html#ownage","std/seq.html#array-specific-operations","std/seq.html#sequence-specific-operations","examples/index.html#examples","usage/index.html#usage","usage/specifications.html#specifications","usage/verification.html#verification","usage/verification.html#coq","usage/verification.html#quickcheck--quickchick","usage/test_vectors.html#test-vectors","developers/index.html#for-developers","developers/compiler.html#working-on-the-compiler","developers/compiler.html#high-level-architecture","developers/compiler.html#code-organization","developers/compiler.html#hacspec-ast","developers/compiler.html#translation-from-rust-ast","developers/compiler.html#name-resolution","developers/compiler.html#external-data","developers/compiler.html#typechecking","developers/compiler.html#proof-backends","developers/compiler.html#unit-tests","misc/contributors.html#contributors"],"index":{"documentStore":{"docInfo":{"0":{"body":64,"breadcrumbs":2,"title":1},"1":{"body":80,"breadcrumbs":4,"title":2},"10":{"body":29,"breadcrumbs":4,"title":1},"11":{"body":17,"breadcrumbs":4,"title":1},"12":{"body":33,"breadcrumbs":5,"title":2},"13":{"body":24,"breadcrumbs":4,"title":1},"14":{"body":0,"breadcrumbs":6,"title":2},"15":{"body":48,"breadcrumbs":5,"title":1},"16":{"body":57,"breadcrumbs":5,"title":1},"17":{"body":7,"breadcrumbs":6,"title":2},"18":{"body":46,"breadcrumbs":5,"title":1},"19":{"body":48,"breadcrumbs":5,"title":1},"2":{"body":196,"breadcrumbs":4,"title":1},"20":{"body":51,"breadcrumbs":6,"title":2},"21":{"body":48,"breadcrumbs":6,"title":2},"22":{"body":66,"breadcrumbs":6,"title":3},"23":{"body":13,"breadcrumbs":5,"title":1},"24":{"body":57,"breadcrumbs":6,"title":2},"25":{"body":75,"breadcrumbs":7,"title":3},"26":{"body":45,"breadcrumbs":6,"title":2},"27":{"body":39,"breadcrumbs":6,"title":2},"28":{"body":0,"breadcrumbs":9,"title":3},"29":{"body":0,"breadcrumbs":10,"title":4},"3":{"body":0,"breadcrumbs":5,"title":2},"30":{"body":60,"breadcrumbs":8,"title":2},"31":{"body":27,"breadcrumbs":7,"title":1},"32":{"body":26,"breadcrumbs":7,"title":1},"33":{"body":10,"breadcrumbs":7,"title":1},"34":{"body":21,"breadcrumbs":7,"title":1},"35":{"body":13,"breadcrumbs":9,"title":3},"36":{"body":12,"breadcrumbs":9,"title":3},"37":{"body":30,"breadcrumbs":2,"title":1},"38":{"body":0,"breadcrumbs":2,"title":1},"39":{"body":0,"breadcrumbs":3,"title":1},"4":{"body":46,"breadcrumbs":5,"title":2},"40":{"body":0,"breadcrumbs":3,"title":1},"41":{"body":0,"breadcrumbs":3,"title":1},"42":{"body":188,"breadcrumbs":4,"title":2},"43":{"body":0,"breadcrumbs":5,"title":2},"44":{"body":10,"breadcrumbs":2,"title":1},"45":{"body":0,"breadcrumbs":5,"title":2},"46":{"body":37,"breadcrumbs":6,"title":3},"47":{"body":13,"breadcrumbs":5,"title":2},"48":{"body":38,"breadcrumbs":5,"title":2},"49":{"body":51,"breadcrumbs":6,"title":3},"5":{"body":31,"breadcrumbs":4,"title":1},"50":{"body":52,"breadcrumbs":5,"title":2},"51":{"body":188,"breadcrumbs":5,"title":2},"52":{"body":53,"breadcrumbs":4,"title":1},"53":{"body":94,"breadcrumbs":5,"title":2},"54":{"body":34,"breadcrumbs":5,"title":2},"55":{"body":37,"breadcrumbs":2,"title":1},"6":{"body":31,"breadcrumbs":5,"title":2},"7":{"body":39,"breadcrumbs":4,"title":1},"8":{"body":8,"breadcrumbs":4,"title":1},"9":{"body":57,"breadcrumbs":4,"title":1}},"docs":{"0":{"body":"hacspec is a specification language for crypto primitives, protocols, and more. It is a subset of the Rust programming language, focused on functional programming and it avoids the use of mutable state as much as possible. This book gives an overview of: The hacspec language ; The different parts of the project: the standard library , examples of hacspec programs ; How to use hacspec to write specifications for standards and verification ; How to use hacspec to generate test vectors ; Work on the hacspec compiler and tooling itself . For a quick introduction you can also check out these slides from April 2021. An in-depth technical report is also available, and serves as a reference for the language formalization.","breadcrumbs":"Introduction » Introduction","id":"0","title":"Introduction"},"1":{"body":"This section gives an informal description of the hacspec language, whose goal is to provide hands-on documentation for users of the language. For a formal specification of the semantics of the language, please refer to the technical report . hacspec is a domain-specific language embedded inside Rust. This means that all correct hacspec programs are correct Rust programs: you can use the usual Rust tooling for working on your hacspec developments. However, hacspec is a strict subset of Rust: this means that some features of Rust are forbidden inside hacspec. The goal of restricting the expressiveness of the language is twofold: first, help domain experts such as cryptographers convey their specifications in a fashion that should help them avoid mistakes; second, provide a way for Rust programmers to interact with theorem provers such as F* or Coq.","breadcrumbs":"The hacspec language » The hacspec language","id":"1","title":"The hacspec language"},"10":{"body":"Looping is severely restricted in hacspec compared to Rust, as the only accepted form is for looping with a counter over an integer range: for i in low..hi { ... // The block can use i and reassign mutable variables\n} The motivation for this restriction is to ease the proof of termination of loops. break or continue statements are forbidden.","breadcrumbs":"The hacspec language » Core » Loops","id":"10","title":"Loops"},"11":{"body":"hacspec allows statement-like conditionals as well as expression-like conditionals: if cond1 { ... // the block can modify mutable variables\n} else { // else block is optional here ...\n}\nlet x = if cond2 { ... } else { ... };","breadcrumbs":"The hacspec language » Core » Conditionals","id":"11","title":"Conditionals"},"12":{"body":"In regular Rust, statements and expressions can be mixed together freely. This not the case in hacspec that imposes a strict precedence of statements over expressions. For instance, the following code is not allowed in hacspec: let x = if cond { y = true; // ERROR: the reassignment is a statement, which cannot // be contained in the expression to which x is assigned. 3\n} else { 4\n};","breadcrumbs":"The hacspec language » Core » Statements and expressions","id":"12","title":"Statements and expressions"},"13":{"body":"hacspec allows for both pub and non-pub versions of item declarations (pub, non-pub, etc). You simply have to respect the Rust visibility rules. Note that these visibility distinctions might not be translated in the proof backends.","breadcrumbs":"The hacspec language » Core » Visibility","id":"13","title":"Visibility"},"14":{"body":"","breadcrumbs":"The hacspec language » Sequences and arrays » Sequences and arrays","id":"14","title":"Sequences and arrays"},"15":{"body":"The staple Vec type is forbidden in hacspec. Instead, you have to use the type Seq, which is implemented as a wrapper around Vec. The most notable differences between Seq and Vec is that Seq is not resizable, and does not support push and pop operations. Instead, the final length of the seq has to be provided at creation time. See the hacspec standard library documentation for more details. Seq is a built-in generic type that always has to be indexed by the content of the cells: Seq, etc.","breadcrumbs":"The hacspec language » Sequences and arrays » Sequences","id":"15","title":"Sequences"},"16":{"body":"The native Rust array types [, ] is forbidden in hacspec. Instead, you have to declare nominally at the top-level new array types for a specific cell content and size with: array!(FooArray, u8, 64);\n// This declares type FooArray as an array of u8 of size 64\nbytes!(BarArray, 64);\n// bytes! is a specialized version of array! with secret bytes\narray!(BazArray, u8, 64, type_for_indexes:BazIndex);\n// The additional argument type_for_indexes defines an alias of usize\n// intended to spot which usizes are used to index BazArray (useful for\n// verification)","breadcrumbs":"The hacspec language » Sequences and arrays » Arrays","id":"16","title":"Arrays"},"17":{"body":"hacspec also supports user-defined structs and enums with some restrictions.","breadcrumbs":"The hacspec language » Structs and enums » Structs and enums","id":"17","title":"Structs and enums"},"18":{"body":"The only form of struct declaration currently allowed in hacspec is: struct Foo(u32, Seq); The struct thus declared can have one or more components. This form of struct declaration effectively corresponds to a single-case enum, and is implemented as such. Struct components can be accessed through let-binding destructuring: let Foo(x, y) = z; Note that you can't store borrowed types inside hacspec structs, hence there is no need for lifetime variables.","breadcrumbs":"The hacspec language » Structs and enums » Structs","id":"18","title":"Structs"},"19":{"body":"hacspec supports very restricted enum declarations: enum Foo { CaseA, CaseB(u16), CaseC(Seq, u64)\n} These declaration don't support the basic Rust features such as C-style union declarations with assignments for each case. Enumeration values can be pattern-matched in an expression: match x { Foo::CaseA => ..., Foo::CaseB(y) => ..., Foo::CaseC(y,z) => ...\n} Note that you can't store borrowed types inside hacspec enums, hence there is no need for lifetime variables.","breadcrumbs":"The hacspec language » Structs and enums » Enums","id":"19","title":"Enums"},"2":{"body":"P ::= [i]\\* Program items\ni ::= array!(t, μ, n) Array type declaration where n is a natural number | nat_mod!(t, n) Modular integer | fn f([d]+) -> μ b Function declaration | type t = enum { [c(μ)]+ } Enum declaration (with constructors) | type t = struct([μ]+) Struct declaration (without named fields) | const x: μ = e Constant declaration | use crate::* External crate import | use mod::* Internal module import\nd ::= x: τ Function argument | mut x: τ Mutable function argument\nμ ::= unit|bool|u8|U8|i8|I8... Base types | Seq<μ> Sequence | String Strings | ([μ]+) Tuple | unit Unit type | t Named type\nτ ::= μ Plain type | &μ Immutable reference\nb ::= {[s;]+} Block\np ::= x Variable pattern | ([p]+) Tuple pattern | t (p) Struct constructor pattern | _ Wildcard pattern\ns ::= let p: τ = e Let binding | let mut p: τ = e Mutable let binding | x = e Variable reassignment | x = e? Variable reassignment with result/option catching | let p: τ = e? Let binding with result/option catching | if e then b (else b) Conditional statements | c(e) Enum injection | match e { [c(p) => e]+ } Pattern matching | for x in e..e b For loop (integers only) | e Return expression | b Statement block\ne ::= ()|true|false Unit and boolean literals | n Integer literal | U8(e)|I8(e)|... Secret integer classification | \"...\" String literal | t([e]+) Array literal | e as μ Integer casting | x Variable | () Unit | f([a]+) Function call | if e then e else e Conditional expression | e ⊙ e Binary operations | ⊘ e Unary operations | ([e]+) Tuple constructor | x[e] Array or sequence index\na ::= e Linear argument | &e Call-site borrowing\n⊙ ::= + | - | * | / | && | || | == | != | > | <\n⊘ ::= - | ~","breadcrumbs":"The hacspec language » Syntax » Syntax","id":"2","title":"Syntax"},"20":{"body":"User-defined structs and enums presented above don't support generic type parameters yet. However, the built-in enums Option and Result support type parameters. Those type parameters have to be explicitly declared each time, as hacspec does not currently support type inference: match x { Result::, bool>::Ok(y) => ..., Result::, bool>::Err(err) => ...\n} Such type parameter declaration is cumbersome; as a workaround we advise to declare a type alias as such: type MyResult = Result::, bool>;","breadcrumbs":"The hacspec language » Structs and enums » Option and Result","id":"20","title":"Option and Result"},"21":{"body":"Error handling in Rust is done via the Result type (see the structs and enums section). But on top of explicit pattern-matching, hacspec also supports the popular ? operator to quickly perform an early return and propagate the error case upwards. ? is only allowed at the very end of an expression in a let-binding or reassignment statement: let x = foo(true)?; // GOOD\nlet y = foo(bar(0)?); // ERROR: the ? is not at the end of the statement Currently, ? is the only way to return early in a hacspec function.","breadcrumbs":"The hacspec language » Error handling » Error handling","id":"21","title":"Error handling"},"22":{"body":"The hacspec standard library contains a host of functions, type generators and methods that define the base objects manipulated in classic cryptographic primitives. Methods in the standard library can be divided into three categories: The not_hacspec methods whose signature and body does not belong to the hacspec fragment of Rust. They should not be used in hacspec code, but can be used as helpers for e.g. testing. The unsafe_hacspec methods whose signature belongs to hacspec but not the body. These methods can be used in hacspec programs but their body is part of the trusted codebase. The in_hacspec methods whose signatures and bodies belong to the hacspec fragment of Rust. These can be used safely in hacspec programs.","breadcrumbs":"The hacspec std library » The hacspec std library","id":"22","title":"The hacspec std library"},"23":{"body":"hacspec overloads the arithmetic operators for a wide variety of types corresponding to mathematical values mentioned in cryptographic specifications.","breadcrumbs":"The hacspec std library » Arithmetic » Arithmetic","id":"23","title":"Arithmetic"},"24":{"body":"All of these types implement the Numeric trait defined by the hacspec standard library. The arithmetic operators work for all kinds of integers, but also arrays and sequences (point-wise operations). Note that the list of types implementing Numeric is hardcoded in the hacspec compiler, and as of this day cannot be extended by the user. While the Rust compiler can infer the type of integer literals automatically, this feature is not implemented by the hacspec compiler: let w: u32 = 0; // ERROR: an integer without a suffix will have type usize\nlet x: u64 = 0x64265u64; // GOOD\nlet y: u64 = 4u64; // GOOD","breadcrumbs":"The hacspec std library » Arithmetic » The Numeric trait","id":"24","title":"The Numeric trait"},"25":{"body":"One of hacspec's goal is to enable users to quickly check whether their application does not obviously break the constant-time guarantee. Certain processor instructions take more or less time to complete depending on their inputs, which can cause secret leakage and break the security of an application. Hence, hacspec offers for each type of integer (u8, u32, etc.) a mirror secret integer type (U8, U32, etc.) for which operations that break constant-timedness are forbidden. This public/private distinction can be found at a lot of places in the standard library, and is made to forbid functions and data structures from leaking secrets. Conversions between public and secret integers are restricted to two functions: classify and declassify.","breadcrumbs":"The hacspec std library » Arithmetic » Public and secret integers","id":"25","title":"Public and secret integers"},"26":{"body":"Some cryptographic specifications talk about modular arithmetic in large fields, whose size overflows even u128. To ease the expression of such specifications, hacspec offers wrapper types around BigInt that can be declared using the following API: abstract_nat_mod!( NameOfModularInts, NameOfUnderlyingByteRepresentation, 256, // Number of bits for the representation of the big integer, \"ffffffffffffffff00000000000065442\", // Hex representation of the modulo value as hex\n) abstract_public_nat_mod!( ... // Public version of above\n)","breadcrumbs":"The hacspec std library » Arithmetic » Abstract integers","id":"26","title":"Abstract integers"},"27":{"body":"It is often useful to view an integer as a sequence of bytes that can be manipulated individually. The hacspec standard library provides a number of function to translate back and forth from integer to sequence of bytes: pub fn u16_to_le_bytes(x: u16) -> u16Word; pub fn u16_from_le_bytes(s: u16Word) -> u16; pub fn U64_to_be_bytes(x: U64) -> U64Word; pub fn U64_from_be_bytes(s: U64Word) -> U64; ...","breadcrumbs":"The hacspec std library » Arithmetic » Integers as bytes","id":"27","title":"Integers as bytes"},"28":{"body":"","breadcrumbs":"The hacspec std library » Sequence and array operations » Sequence and array operations","id":"28","title":"Sequence and array operations"},"29":{"body":"","breadcrumbs":"The hacspec std library » Sequence and array operations » Operations common to sequences and arrays","id":"29","title":"Operations common to sequences and arrays"},"3":{"body":"","breadcrumbs":"The hacspec language » Core » The core of hacspec","id":"3","title":"The core of hacspec"},"30":{"body":"Some operations are common to both sequences and arrays by design, and can be used as the interoperability base between the two types of collections. These operations are the following: len: gives the length of an array or sequence; iter: iterates over the content of the array or sequence (unsafe in hacspec but can be used for implementing primitives) create: creates a sequence or array and initializes the elements to the default value (0 for arithmetic types); update_slice, update and update_start: produce a new sequence or array with modified contents. Both sequences and arrays implement indexing with any type of unsigned public integer.","breadcrumbs":"The hacspec std library » Sequence and array operations » Base traits","id":"30","title":"Base traits"},"31":{"body":"Both arrays and sequences support chunking with methods like: num_chunks and num_exact_chunks (whole or partial blocks); get_chunk, get_exact_chunk and get_remainder_chunk; set_chunk and set_exact_chunk. The read operations borrow the sequence or array, but the write operations create a new sequence or array.","breadcrumbs":"The hacspec std library » Sequence and array operations » Chunking","id":"31","title":"Chunking"},"32":{"body":"Sequences and arrays can be created from other types via methods like: from_public_slice and from_slice; from_vec and from_native_slice; from_public_seq and from_seq (to convert a seq into an array of the correct size); from_string and from_hex for byte or hex strings (hex only for u8 sequences and arrays).","breadcrumbs":"The hacspec std library » Sequence and array operations » Conversions","id":"32","title":"Conversions"},"33":{"body":"The methods prefixed by public performs an element-wise classification of the data under the hood.","breadcrumbs":"The hacspec std library » Sequence and array operations » Secrecy","id":"33","title":"Secrecy"},"34":{"body":"Some methods have two versions: an owned and a non-owned version, depending on whether the self argument is consumed or not by the method. This distinction is useful to avoid unnecessary copies and thus be more performant.","breadcrumbs":"The hacspec std library » Sequence and array operations » Ownage","id":"34","title":"Ownage"},"35":{"body":"Since array length is known statically, new does not take any argument, same as length. slices of arrays become Seq.","breadcrumbs":"The hacspec std library » Sequence and array operations » Array-specific operations","id":"35","title":"Array-specific operations"},"36":{"body":"Sequences can be extended (by creating a new sequence under the hood) with push or concat. Sequences can also be sliced with slice.","breadcrumbs":"The hacspec std library » Sequence and array operations » Sequence-specific operations","id":"36","title":"Sequence-specific operations"},"37":{"body":"The main hacspec repository contains a set of example specifications . In this section we pull out some interesting bits to demonstrate the hacspec language. There's also a provider that bundles the different cryptographic primitives into a single library. The provider implements the RustCrypto traits in order to facilitate interoperability.","breadcrumbs":"Examples » Examples","id":"37","title":"Examples"},"38":{"body":"","breadcrumbs":"Usage » Usage","id":"38","title":"Usage"},"39":{"body":"","breadcrumbs":"Usage » Specifications » Specifications","id":"39","title":"Specifications"},"4":{"body":"hacspec only supports single-module crates, due to a technical limitation of the Rust compiler. Inside this single file, a hacspec program shall always start with: use hacspec_lib::*; // Optional: dependencies on other crates containing hacspec programs\nuse other_hacpsec_crate::*; No other form of use is allowed in hacspec, because allowing Rust's complex import patterns would increase the complexity of the hacspec compiler and conflict with the module systems of most proof assistants.","breadcrumbs":"The hacspec language » Core » Crates and modules","id":"4","title":"Crates and modules"},"40":{"body":"","breadcrumbs":"Usage » Verification » Verification","id":"40","title":"Verification"},"41":{"body":"","breadcrumbs":"Usage » Verification » Coq","id":"41","title":"Coq"},"42":{"body":"You can test your hacspec code using QuickCheck (a Rust library for randomized property-based testing), by simply implementing quickcheck::Arbitrary for the type you want to generate tests for. For example: impl Arbitrary for Fp { fn arbitrary(g: &mut Gen) -> Fp { let mut a: [u64; 6] = [0; 6]; for i in 0..6 { a[i] = u64::arbitrary(g); } let mut b: [u8; 48] = [0; 48]; for i in 0..6 { let val: u64 = a[i]; b[(i*8)..((i+1)*8)].copy_from_slice(&(val.to_le_bytes())); } Fp::from_byte_seq_le(Seq::::from_public_slice(&b)) }\n} then you can use the quickcheck attribute, to make QuickCheck do property based testing for this function: #[cfg(test)]\n#[quickcheck] //Using the fp arbitraty implementation from above to generate fp2 elements.\nfn test_fp2_prop_add_neg(a: Fp2) -> bool { let b = fp2neg(a); fp2fromfp(Fp::ZERO()) == fp2add(a, b)\n} which will run when you do cargo test. If you then add the tag #[cfg(proof)] and export to Coq, cargo hacspec -o coq/src/.v then you get corresponding QuickChick test, Definition test_fp2_prop_add_neg (a_320 : fp2) : bool := let b_321 := fp2neg (a_320) in (fp2fromfp (nat_mod_zero )) =.? (fp2add (a_320) (b_321)). QuickChick (forAll g_fp2 (fun a_320 : fp2 =>test_fp2_prop_add_neg a_320)). and generators will be constructed for the types automatically as, Instance show_fp : Show (fp) := Build_Show (fp) (fun x => show (GZnZ.val _ x)).\nDefinition g_fp : G (fp) := @bindGen Z (fp) (arbitrary) (fun x => returnGen (@Z_in_nat_mod _ x)).\nInstance gen_fp : Gen (fp) := Build_Gen fp g_fp. which you can then run through coq in the folder coq/ coqc -R src/ Hacspec src/.v Make sure you run: coqc -R src/ Hacspec src/MachineIntegers.v\ncoqc -R src/ Hacspec src/Lib.v or make to generate the .vo files used by .v. For more information: on QuickCheck (in rust): BurntSushi/quickcheck on QuickChick: Software foundations book on QuickChick","breadcrumbs":"Usage » Verification » QuickCheck / QuickChick","id":"42","title":"QuickCheck / QuickChick"},"43":{"body":"","breadcrumbs":"Usage » Test Vectors » Test Vectors","id":"43","title":"Test Vectors"},"44":{"body":"This section contains a handy guide for hacspec developers working on the standard library or the compiler.","breadcrumbs":"For Developers » For Developers","id":"44","title":"For Developers"},"45":{"body":"","breadcrumbs":"For Developers » Working on the compiler » Working on the compiler","id":"45","title":"Working on the compiler"},"46":{"body":"Hacspec compiler architecture The Rustspec compiler intervenes after the regular Rust typechecking, by translating the Rust AST into a stricter hacspec AST, yielding error messages if you're not in the subset. The hacspec AST then undergoes a typechecking phase that replicates the formal typechecking judgment of hacspec, before being compiled to the proof backends like F* or Coq.","breadcrumbs":"For Developers » Working on the compiler » High-level architecture","id":"46","title":"High-level architecture"},"47":{"body":"The source code for the compiler is located in the language/ folder. main.rs is the file containing the driver for the different compiler passes.","breadcrumbs":"For Developers » Working on the compiler » Code organization","id":"47","title":"Code organization"},"48":{"body":"The main file of the compiler is rustspec.rs and it contains the AST structure. Types are usually enclosed into Spanned<...> blocks that attach a location information to an AST node, thereby providing a way to display beautiful error message. Several nodes also contain a Fillable<...> node standing for information that is filled by the typechecking phase but that can be left to None when building the AST.","breadcrumbs":"For Developers » Working on the compiler » Hacspec AST","id":"48","title":"Hacspec AST"},"49":{"body":"This phase is contained in ast_to_rustspec.rs. The trickyness of this translation is that it needs to be aware of certain special names contained in the structure SpecialNames. Indeed, while the Rust AST treats the application enum constructors like function applications, the hacspec AST considers them as proper injection so we need to distinguish them in the Rust AST. For that, we need to know all declared enums at this point of the program. Enums and other SpecialNames are also defined in the ExternalData that contains the signatures and types imported in crates used by the hacspec program being compiled.","breadcrumbs":"For Developers » Working on the compiler » Translation from Rust AST","id":"49","title":"Translation from Rust AST"},"5":{"body":"hacspec is a functional language, and only supports the declaration of top-level functions: fn hacspec_function(x: bool) -> () { ...\n} The functions can take any number of arguments, and may return a value (or not). Note that recursive functions are forbidden in hacspec. The control flow inside hacspec functions is limited, as return statements are forbidden.","breadcrumbs":"The hacspec language » Core » Functions","id":"5","title":"Functions"},"50":{"body":"When the translation from Rust AST is finished, the identifiers for all variables inside function bodies are of the following type: pub enum Ident { Unresolved(String), Local(LocalIdent), TopLevel(TopLevelIdent),\n} More precisely, they are still in the Ident::Unresolved case. The compiler pass in name_resolution.rs resolves the identifiers by linking them to local or global identifiers, each one having a unique ID. hacspec does not feature De Bruijn variable handling, instead relying on unique fresh IDs for differentiating local and global variables from each other.","breadcrumbs":"For Developers » Working on the compiler » Name resolution","id":"50","title":"Name resolution"},"51":{"body":"A hacspec file can never (in principal) be considered alone, as it usually imports at least several other crates like the hacspec standard library. These external crates must pre-populate the typechecking context with the types and function signatures that they define. It's the job of hir_to_rustspec.rs to retrieve this data. The critical piece of code in this file is the following : let num_def_ids = crate_store.num_def_ids_untracked(*krate_num);\nlet def_ids = (0..num_def_ids).into_iter().map(|id| DefId { krate: *krate_num, index: DefIndex::from_usize(id),\n}); First, we retrieve the number of exported symbols by an external crate using num_def_ids_untracked, a function that is specifically labeled as critical to the hacspec compiler in the Rust compiler codebase. Then, we manufacture definition IDs for all these exported symbols, relying on the invariant that they are numbered from 0 to the number of exported symbols in Rust's compiled crate metadata format. Then, we use those definition IDs (DefId) to query the Rust compiler via the central TyCtxt data structure. If the DefId corresponds to a type definition, we examine the type definition structurally and check whether it corresponds to a hacspec-compatible type definition. Notably, the type definitions generated by macros like array! or nat_mod! are only seen here in their expanded version, so we have to retro-engineer which expanded version corresponds to which macro expansion. This is a vulnerability of the compiler since it's possible to break the abstraction of the language by smuggling in a type not defined via a hacspec macro this way. That's why hacspec developers should be very careful about which dependencies they import in order to have a 100% safety guarantee. For DefIds corresponding to functions, the signature of the function is analysed and if it fits the subset of types expected by hacspec, the function is imported along with its type in a pre-populated typechecking context. Note that it is not possible any more at this point to retrieve the #[in_hacspec], #[unsafe_hacspec], etc. attributes that would tag the external definitions, since these attributes get erased by the Rust compiler before reaching the compiled crates metadata.","breadcrumbs":"For Developers » Working on the compiler » External data","id":"51","title":"External data"},"52":{"body":"The typechecking is done in typechecker.rs and follows a very regular structure, making heavy use of immutable data structures to not mess up the various context manipulations. Note that we need to perform a full typechecking complete with method resolution because the proof backends need very fine-grained typechecking information to generate correct code. Be careful: types often need to be de-aliased with dealias_type before being matched on structurally. Forgetting to dealias will lead to bugs with type aliases.","breadcrumbs":"For Developers » Working on the compiler » Typechecking","id":"52","title":"Typechecking"},"53":{"body":"The different proof backends (rustspec_to_fstar.rs, etc) all enjoy a similar structure that ought to be refactored to showcase their commonality. The backends don't use an intermediate AST to generate the code in the proof assistant but rather directly print code as string using the pretty pretty-printing library. If you want to start a new proof backend, the easiest solution is probably to copy an existing proof backend and tweak it until you get the right result. The code generation has to be fine-tuned to interface with a replica of the hacspec standard library in the host proof assistant, whose correspondence with the original hacspec library in Rust is part of the trusted code base. More specially, clever solutions to encode sequences and array, as well as all the different types of public and secret machine integers, and the interaction between the two (seeing a double as a string of bytes) have to be implemented through proof assistant libraries.","breadcrumbs":"For Developers » Working on the compiler » Proof backends","id":"53","title":"Proof backends"},"54":{"body":"The compiler has various unit tests that are controlled trough the language/tests files. Please enrich the unit tests bases in language-tests, negative-language-tests and test-crate as you implement new features for the compiler. The compiler can also be tested against all the hacspec cryptographic specifications by running examples/typecheck_examples.sh from the root of the repository.","breadcrumbs":"For Developers » Working on the compiler » Unit tests","id":"54","title":"Unit tests"},"55":{"body":"A list of contributors to the hacspec project. Franziskus Kiefer ( franziskuskiefer ) Denis Merigoux ( denismerigoux ) Karthik Bhargavan Tomer Yavor ( TomerHawk ) Tanmay Garg ( tanmay2004 ) Peter Schwabe ( cryptojedi ) Kaspar Schleiser ( kaspar030 ) Kasserne Tony Arcieri ( tarcieri ) If you feel you're missing from this list, feel free to add yourself in a PR.","breadcrumbs":"Contributors » Contributors","id":"55","title":"Contributors"},"6":{"body":"hacspec supports all the Rust primitive types: integers (signed and unsigned), booleans, unit, tuples. hacspec possesses some support for generic types, but only for primitive types defined by the language creators, and not for user-defined types. Type aliases are allowed in hacspec: type OneTypeAlias = u32;","breadcrumbs":"The hacspec language » Core » Basic Types","id":"6","title":"Basic Types"},"7":{"body":"hacspec forbids mutable borrows in all places. Immutable borrows are allowed in hacspec, but only for function arguments. Indeed, you can declare a function argument as immutably borrowed: fn hacspec_function(arg: &Seq) { ...\n} You can also immutably borrow a value at the call site of a function: hacspec_function(&Seq::::new(64)) In particular, return types cannot contain references, and the same is true for types inside tuples or any data structure.","breadcrumbs":"The hacspec language » Core » Borrows","id":"7","title":"Borrows"},"8":{"body":"hacspec allows the declaration of constants: const ONE_CONST : bool = false;","breadcrumbs":"The hacspec language » Core » Constants","id":"8","title":"Constants"},"9":{"body":"Inside a function body, hacspec allows regular Rust let-bindings: let x = ...; hacspec also allows mutable let bindings, and subsequent reassignments: let mut x = ...;\n...\nx = ...; This allowing of mutable variable might come as a contradiction to hacspec's philosophy of forbidding mutable state. But in fact, mutable local variables in hacspec can be translated to a completely side-effect free form with a state-passing like monadic structure. Left-hand sides of assignments support destructuring, which is currently the only way to access the members of a tuple: let (x, y) = z;","breadcrumbs":"The hacspec language » Core » Assignments","id":"9","title":"Assignments"}},"length":56,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{".":{".":{"6":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{")":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":4,"docs":{"24":{"tf":1.0},"30":{"tf":1.0},"42":{"tf":1.4142135623730951},"51":{"tf":1.0}},"x":{"6":{"4":{"2":{"6":{"5":{"df":0,"docs":{},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"1":{"0":{"0":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"2":{"1":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"6":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"12":{"tf":1.0}}},"4":{"8":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":1,"docs":{"12":{"tf":1.0}},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"6":{"4":{"df":1,"docs":{"16":{"tf":2.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"_":{"df":2,"docs":{"2":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"a":{"[":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}},"_":{"3":{"2":{"0":{"df":1,"docs":{"42":{"tf":2.23606797749979}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":3,"docs":{"20":{"tf":1.0},"26":{"tf":1.0},"42":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":2,"docs":{"26":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"10":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}},"d":{"d":{"df":2,"docs":{"42":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"a":{"df":2,"docs":{"16":{"tf":1.0},"20":{"tf":1.0}},"s":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"6":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":10,"docs":{"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"4":{"tf":1.4142135623730951},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}},"g":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":2,"docs":{"15":{"tf":1.0},"4":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.0},"2":{"tf":1.7320508075688772},"34":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":4,"docs":{"23":{"tf":1.4142135623730951},"24":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"df":12,"docs":{"14":{"tf":1.0},"16":{"tf":2.23606797749979},"2":{"tf":1.7320508075688772},"24":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":2.449489742783178},"31":{"tf":1.7320508075688772},"32":{"tf":1.7320508075688772},"35":{"tf":1.7320508075688772},"51":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"19":{"tf":1.0},"9":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.7320508075688772}}}}}},"t":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":5,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":2.0},"49":{"tf":2.0},"50":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"34":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}}},"b":{"[":{"(":{"df":0,"docs":{},"i":{"*":{"8":{")":{".":{".":{"(":{"(":{"df":0,"docs":{},"i":{"+":{"1":{")":{"*":{"8":{")":{"]":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"(":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"_":{"3":{"2":{"1":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"27":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"13":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.23606797749979}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":6,"docs":{"2":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}},"i":{"c":{"df":2,"docs":{"19":{"tf":1.0},"6":{"tf":1.0}}},"df":0,"docs":{}}},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":2.449489742783178},"42":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"35":{"tf":1.0}}}}},"df":3,"docs":{"46":{"tf":1.0},"49":{"tf":1.0},"52":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"46":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.7320508075688772}}}}}},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"25":{"tf":1.0},"30":{"tf":1.0},"53":{"tf":1.0}}}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":4,"docs":{"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"21":{"tf":1.0},"9":{"tf":1.4142135623730951}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}},"df":0,"docs":{}},"t":{"df":2,"docs":{"26":{"tf":1.0},"37":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":5,"docs":{"10":{"tf":1.0},"11":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"31":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":3,"docs":{"22":{"tf":2.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"0":{"tf":1.0},"42":{"tf":1.0}}},"l":{">":{":":{":":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":4,"docs":{"20":{"tf":1.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"8":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"2":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"31":{"tf":1.0},"7":{"tf":2.23606797749979}}}}}},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"13":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":3,"docs":{"10":{"tf":1.0},"25":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"df":1,"docs":{"50":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"52":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"20":{"tf":1.0}}}}},"n":{"d":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":4,"docs":{"16":{"tf":1.4142135623730951},"27":{"tf":1.7320508075688772},"32":{"tf":1.0},"53":{"tf":1.0}},"s":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"c":{"(":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}},"p":{"df":1,"docs":{"2":{"tf":1.0}}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"2":{"tf":1.4142135623730951},"7":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"u":{"1":{"6":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"50":{"tf":1.0}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":2,"docs":{"19":{"tf":1.0},"2":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"16":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"25":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{}}}},"f":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":3,"docs":{"0":{"tf":1.0},"25":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":2,"docs":{"2":{"tf":1.0},"33":{"tf":1.0}},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":7,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.4142135623730951},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.0}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":12,"docs":{"0":{"tf":1.0},"24":{"tf":1.7320508075688772},"4":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.7320508075688772},"47":{"tf":1.4142135623730951},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"54":{"tf":1.7320508075688772}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"25":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}},"x":{"df":1,"docs":{"4":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}}}}},"n":{"c":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"36":{"tf":1.0}}}},"df":0,"docs":{}},"d":{"1":{"df":1,"docs":{"11":{"tf":1.0}}},"2":{"df":1,"docs":{"11":{"tf":1.0}}},"df":1,"docs":{"12":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"11":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"49":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"25":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951}}}}},"df":2,"docs":{"2":{"tf":1.0},"8":{"tf":1.0}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.7320508075688772},"49":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"34":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.0},"44":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"7":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"30":{"tf":1.4142135623730951}}}},"x":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"10":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"5":{"tf":1.0},"54":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":2,"docs":{"25":{"tf":1.0},"32":{"tf":1.0}}},"t":{"df":1,"docs":{"32":{"tf":1.0}}}},"y":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"i":{"df":2,"docs":{"34":{"tf":1.0},"53":{"tf":1.0}}}},"q":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"c":{"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":4,"docs":{"1":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.7320508075688772},"46":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"3":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"1":{"tf":1.4142135623730951},"32":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"18":{"tf":1.0},"23":{"tf":1.0},"42":{"tf":1.0},"51":{"tf":2.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"d":{"(":{"*":{"df":0,"docs":{},"k":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}},"df":5,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":1.7320508075688772},"49":{"tf":1.0},"51":{"tf":2.23606797749979},"54":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"6":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"0":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":6,"docs":{"1":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"37":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":5,"docs":{"25":{"tf":1.0},"33":{"tf":1.0},"51":{"tf":1.7320508075688772},"52":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}},"y":{"df":1,"docs":{"24":{"tf":1.0}}}},"df":1,"docs":{"2":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"52":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"52":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"13":{"tf":1.0},"16":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"19":{"tf":1.7320508075688772},"2":{"tf":2.23606797749979},"20":{"tf":1.7320508075688772},"26":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"df":2,"docs":{"50":{"tf":1.0},"52":{"tf":1.0}},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":2.0}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":8,"docs":{"16":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.4142135623730951},"51":{"tf":2.6457513110645907}}}}}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"4":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":3,"docs":{"1":{"tf":1.0},"44":{"tf":1.4142135623730951},"51":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"37":{"tf":1.0},"47":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"13":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"49":{"tf":1.0}}}}}}}}}}},"v":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"15":{"tf":1.0}}}}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"21":{"tf":1.0},"52":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{".":{".":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":4,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}}}},"s":{"df":2,"docs":{"10":{"tf":1.0},"26":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":4.58257569495584}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"30":{"tf":1.0},"33":{"tf":1.0},"42":{"tf":1.0}}}}}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"48":{"tf":1.0}}}}},"o":{"d":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"m":{"df":8,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":2.0},"2":{"tf":1.7320508075688772},"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"49":{"tf":1.7320508075688772},"50":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"19":{"tf":1.0}}}}}}},"r":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":5,"docs":{"12":{"tf":1.0},"21":{"tf":2.0},"24":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"t":{"c":{"df":5,"docs":{"13":{"tf":1.0},"15":{"tf":1.0},"25":{"tf":1.4142135623730951},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"26":{"tf":1.0}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"37":{"tf":1.4142135623730951},"42":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"_":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"21":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"1":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.0},"19":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"26":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"24":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"l":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":1.0},"51":{"tf":2.0}}}}}}}},"f":{"(":{"[":{"a":{"df":1,"docs":{"2":{"tf":1.0}}},"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"8":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.0}}}}}}}},"df":2,"docs":{"1":{"tf":1.0},"46":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"1":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"50":{"tf":1.0},"54":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"55":{"tf":1.4142135623730951}}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"6":{"5":{"4":{"4":{"2":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"df":6,"docs":{"4":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0}}},"l":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"48":{"tf":1.0}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"52":{"tf":1.0},"53":{"tf":1.0}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"51":{"tf":1.0}}}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"n":{"df":5,"docs":{"2":{"tf":1.0},"27":{"tf":2.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"7":{"tf":1.0}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"42":{"tf":1.0},"47":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":6,"docs":{"12":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}}},"o":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"(":{"0":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"21":{"tf":1.0}}}}},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"x":{"df":1,"docs":{"18":{"tf":1.0}}}},":":{":":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"y":{",":{"df":0,"docs":{},"z":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"19":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"b":{"df":0,"docs":{},"i":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.4142135623730951}}}}},"df":3,"docs":{"25":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":4,"docs":{"10":{"tf":1.0},"18":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"27":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"2":{"a":{"d":{"d":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{":":{":":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"42":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}}}}},":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"b":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":3.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.4142135623730951}}}}}}},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"u":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":2,"docs":{"55":{"tf":1.0},"9":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"32":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"32":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":13,"docs":{"0":{"tf":1.0},"2":{"tf":2.0},"21":{"tf":1.0},"22":{"tf":1.0},"25":{"tf":1.4142135623730951},"27":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":2.449489742783178},"50":{"tf":1.0},"51":{"tf":2.23606797749979},"7":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}}}},"g":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"df":1,"docs":{"42":{"tf":1.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.0},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":1.4142135623730951},"6":{"tf":1.0}}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"30":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"1":{"tf":1.4142135623730951},"25":{"tf":1.0}}}},"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"21":{"tf":1.0},"24":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"51":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"44":{"tf":1.0}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{".":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"'":{"df":2,"docs":{"25":{"tf":1.0},"9":{"tf":1.0}}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"(":{"&":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"(":{"6":{"4":{"df":1,"docs":{"7":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{},"x":{"df":1,"docs":{"5":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}}},"df":38,"docs":{"0":{"tf":2.449489742783178},"1":{"tf":2.6457513110645907},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.4142135623730951},"13":{"tf":1.0},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"20":{"tf":1.0},"21":{"tf":1.4142135623730951},"22":{"tf":2.8284271247461903},"23":{"tf":1.0},"24":{"tf":1.7320508075688772},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.4142135623730951},"4":{"tf":2.23606797749979},"42":{"tf":2.23606797749979},"44":{"tf":1.0},"46":{"tf":2.0},"48":{"tf":1.0},"49":{"tf":1.4142135623730951},"5":{"tf":1.7320508075688772},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"53":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.0},"6":{"tf":1.7320508075688772},"7":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":1,"docs":{"44":{"tf":1.0}}},"l":{"df":2,"docs":{"21":{"tf":1.4142135623730951},"50":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"c":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"p":{"df":1,"docs":{"1":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"22":{"tf":1.0}}}}}},"n":{"c":{"df":3,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"11":{"tf":1.0},"51":{"tf":1.0}}}},"x":{"df":2,"docs":{"26":{"tf":1.4142135623730951},"32":{"tf":1.4142135623730951}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"46":{"tf":1.0}}}},"r":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":2,"docs":{"50":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{":":{":":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{}},"df":1,"docs":{"50":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.7320508075688772}}}}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"52":{"tf":1.0},"7":{"tf":1.7320508075688772}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.0},"24":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":4,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.7320508075688772}}}},"s":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"n":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":2,"docs":{"49":{"tf":1.0},"7":{"tf":1.0}},"x":{"df":5,"docs":{"15":{"tf":1.0},"16":{"tf":1.0},"2":{"tf":1.0},"30":{"tf":1.0},"51":{"tf":1.0}}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"20":{"tf":1.0},"24":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"1":{"tf":1.0},"42":{"tf":1.0},"48":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"49":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"25":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":8,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"50":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"12":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"a":{"d":{"df":3,"docs":{"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"50":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":9,"docs":{"10":{"tf":1.0},"2":{"tf":2.23606797749979},"24":{"tf":1.7320508075688772},"25":{"tf":2.0},"26":{"tf":1.4142135623730951},"27":{"tf":1.7320508075688772},"30":{"tf":1.0},"53":{"tf":1.0},"6":{"tf":1.0}}},"n":{"d":{"df":1,"docs":{"16":{"tf":1.0}}},"df":0,"docs":{}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}},"f":{"a":{"c":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":1,"docs":{"2":{"tf":1.0}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"30":{"tf":1.0},"37":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"'":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.0},"2":{"tf":1.0}}},"r":{"df":1,"docs":{"30":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"j":{"df":0,"docs":{},"o":{"b":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"u":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"46":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"0":{"3":{"0":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"n":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"49":{"tf":1.0}},"n":{"df":1,"docs":{"35":{"tf":1.0}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":8,"docs":{"0":{"tf":2.0},"1":{"tf":2.449489742783178},"37":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.4142135623730951},"6":{"tf":1.0}},"e":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"52":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"48":{"tf":1.0},"9":{"tf":1.0}}}},"n":{"df":1,"docs":{"30":{"tf":1.0}},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.0},"30":{"tf":1.0},"35":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"46":{"tf":1.0},"5":{"tf":1.0}}}}}},"i":{"b":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":11,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"22":{"tf":1.7320508075688772},"24":{"tf":1.0},"25":{"tf":1.0},"27":{"tf":1.0},"37":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":2.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":1,"docs":{"50":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"55":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":2.0},"24":{"tf":1.0}}}}}},"o":{"c":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":2,"docs":{"50":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"t":{"df":2,"docs":{"47":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"10":{"tf":2.0},"2":{"tf":1.0}}}},"t":{"df":1,"docs":{"25":{"tf":1.0}}},"w":{".":{".":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":2,"docs":{"37":{"tf":1.0},"48":{"tf":1.0}}}},"k":{"df":0,"docs":{},"e":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"52":{"tf":1.0}}}},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":3,"docs":{"22":{"tf":1.0},"27":{"tf":1.0},"52":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"19":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"21":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"23":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"46":{"tf":1.0},"48":{"tf":1.0}}}},"df":1,"docs":{"52":{"tf":1.0}}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"22":{"tf":2.449489742783178},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.4142135623730951},"52":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"1":{"tf":1.0}}}},"df":0,"docs":{}}},"x":{"df":1,"docs":{"12":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"2":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"11":{"tf":1.0},"30":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}}},"df":2,"docs":{"2":{"tf":1.0},"4":{"tf":1.7320508075688772}},"o":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"a":{"d":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"u":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"2":{"tf":1.4142135623730951},"7":{"tf":1.0},"9":{"tf":2.0}}}},"df":0,"docs":{}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"49":{"tf":1.0},"50":{"tf":1.0}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}}}}}}}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}}}}},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"!":{"(":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"16":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"df":0,"docs":{},"e":{"d":{"df":4,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"49":{"tf":1.7320508075688772},"52":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"g":{"df":1,"docs":{"54":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"df":7,"docs":{"16":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"48":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"16":{"tf":1.0}}}}},"n":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"34":{"tf":1.0}},"e":{"df":1,"docs":{"48":{"tf":1.0}}}},"t":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":7,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"2":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"24":{"tf":1.7320508075688772}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":1,"docs":{"42":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.0},"26":{"tf":1.0}}}}}},"n":{"df":3,"docs":{"18":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.0}},"e":{"_":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":12,"docs":{"15":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"<":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":3,"docs":{"11":{"tf":1.0},"20":{"tf":1.0},"4":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"37":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"_":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"t":{"df":2,"docs":{"0":{"tf":1.0},"37":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"30":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"34":{"tf":1.0}}}},"df":1,"docs":{"34":{"tf":1.4142135623730951}}}}},"p":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":2.0}}}}}},"df":0,"docs":{},"t":{"df":3,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"53":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"31":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"7":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":3,"docs":{"47":{"tf":1.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"19":{"tf":1.0},"2":{"tf":2.23606797749979},"21":{"tf":1.0},"4":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":2.6457513110645907}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"21":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"52":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"46":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"7":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"1":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.0}}}}},"p":{"df":1,"docs":{"15":{"tf":1.0}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"6":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"51":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"55":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"12":{"tf":1.0}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"33":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0},"6":{"tf":1.4142135623730951}}}}},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":6,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.4142135623730951},"2":{"tf":1.0},"22":{"tf":1.4142135623730951},"4":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"4":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.6457513110645907}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}}},"t":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"1":{"tf":1.0}}}},"i":{"d":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"15":{"tf":1.0},"27":{"tf":1.0},"37":{"tf":1.4142135623730951},"48":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":3,"docs":{"13":{"tf":2.0},"27":{"tf":2.0},"50":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"25":{"tf":1.0}}}}}}},"df":5,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"15":{"tf":1.0},"36":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.449489742783178}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":2.23606797749979}}}},"df":0,"docs":{}}}},"df":1,"docs":{"0":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"21":{"tf":1.0},"25":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"51":{"tf":1.0}}}},"d":{"df":1,"docs":{"31":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":5,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"2":{"tf":1.0},"7":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":4,"docs":{"12":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":1,"docs":{"53":{"tf":1.0}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"37":{"tf":1.0},"54":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.4142135623730951}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"15":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.0},"52":{"tf":1.0}}}},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"1":{"tf":1.0},"10":{"tf":1.4142135623730951},"17":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}},":":{":":{"<":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"df":0,"docs":{},"u":{"8":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"<":{"df":0,"docs":{},"t":{",":{"df":0,"docs":{},"u":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}},"df":3,"docs":{"20":{"tf":1.0},"21":{"tf":1.0},"53":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"o":{"df":1,"docs":{"51":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"2":{"tf":1.0},"21":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"7":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}}},"n":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"54":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"'":{"df":2,"docs":{"4":{"tf":1.0},"51":{"tf":1.0}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"df":19,"docs":{"0":{"tf":1.0},"1":{"tf":2.449489742783178},"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"16":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"4":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"51":{"tf":1.7320508075688772},"53":{"tf":1.0},"6":{"tf":1.0},"9":{"tf":1.0}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"48":{"tf":1.0}}}},"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"7":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"w":{"a":{"b":{"df":0,"docs":{},"e":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"2":{"tf":1.4142135623730951}},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"33":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":4,"docs":{"16":{"tf":1.0},"2":{"tf":1.0},"25":{"tf":2.23606797749979},"53":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"37":{"tf":1.0},"44":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"21":{"tf":1.0},"53":{"tf":1.0}},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"34":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"<":{"df":0,"docs":{},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"8":{"df":2,"docs":{"15":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}}},"df":4,"docs":{"15":{"tf":2.23606797749979},"2":{"tf":1.0},"32":{"tf":1.0},"35":{"tf":1.0}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":12,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"2":{"tf":1.4142135623730951},"24":{"tf":1.0},"27":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":2.449489742783178},"31":{"tf":1.7320508075688772},"32":{"tf":1.4142135623730951},"36":{"tf":2.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"0":{"tf":1.0}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"37":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"22":{"tf":1.7320508075688772},"49":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}},"df":1,"docs":{"6":{"tf":1.0}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.0},"42":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":3,"docs":{"18":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"2":{"tf":1.0},"7":{"tf":1.0}}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"16":{"tf":1.7320508075688772},"26":{"tf":1.0},"32":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"36":{"tf":1.4142135623730951}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"47":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"49":{"tf":1.0},"53":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"49":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"f":{"df":11,"docs":{"0":{"tf":1.4142135623730951},"1":{"tf":1.7320508075688772},"16":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"15":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"25":{"tf":1.0},"27":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"9":{"tf":1.4142135623730951}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"5":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"35":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"12":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"2":{"tf":1.7320508075688772},"32":{"tf":1.0},"53":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":2.6457513110645907},"2":{"tf":1.7320508075688772},"20":{"tf":1.0},"21":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":8,"docs":{"25":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.7320508075688772},"53":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"9":{"tf":1.0}}}},"t":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0},"51":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":10,"docs":{"15":{"tf":1.0},"17":{"tf":1.0},"19":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"21":{"tf":1.0},"31":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"9":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"42":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"4":{"tf":1.0}}}}}}}},"t":{"(":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":3,"docs":{"25":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":1,"docs":{"26":{"tf":1.0}}}},"n":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"y":{"2":{"0":{"0":{"4":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"4":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"_":{"a":{"d":{"d":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.449489742783178},"43":{"tf":1.0},"54":{"tf":2.6457513110645907}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"37":{"tf":1.0}}},"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"20":{"tf":1.0},"51":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"53":{"tf":1.0}}}}}}},"u":{"df":2,"docs":{"18":{"tf":1.0},"34":{"tf":1.0}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"25":{"tf":1.0}}},"df":3,"docs":{"15":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"p":{"df":3,"docs":{"16":{"tf":1.0},"21":{"tf":1.0},"5":{"tf":1.0}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}}}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.4142135623730951},"30":{"tf":1.0},"37":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":6,"docs":{"13":{"tf":1.0},"27":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"y":{"df":1,"docs":{"49":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"e":{"df":2,"docs":{"12":{"tf":1.0},"7":{"tf":1.0}},"|":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"53":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":4,"docs":{"2":{"tf":1.7320508075688772},"6":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":4,"docs":{"25":{"tf":1.0},"30":{"tf":1.0},"34":{"tf":1.0},"53":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}}}}},"y":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{":":{"b":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":4,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":2.0}},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":23,"docs":{"15":{"tf":1.7320508075688772},"16":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.6457513110645907},"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":2.0},"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"30":{"tf":1.7320508075688772},"32":{"tf":1.0},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.8284271247461903},"52":{"tf":1.4142135623730951},"53":{"tf":1.0},"6":{"tf":2.6457513110645907},"7":{"tf":1.4142135623730951}}}}}},"u":{"1":{"2":{"8":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"6":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":1,"docs":{"27":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"3":{"2":{"df":3,"docs":{"24":{"tf":1.0},"25":{"tf":1.4142135623730951},"6":{"tf":1.0}}},"df":0,"docs":{}},"6":{"4":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":4,"docs":{"19":{"tf":1.0},"24":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"8":{"(":{"df":0,"docs":{},"e":{")":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"(":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":4,"docs":{"16":{"tf":1.7320508075688772},"25":{"tf":1.4142135623730951},"32":{"tf":1.0},"42":{"tf":1.0}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"19":{"tf":1.0}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"t":{"df":3,"docs":{"2":{"tf":2.0},"54":{"tf":1.7320508075688772},"6":{"tf":1.0}},"|":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"34":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"d":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"30":{"tf":1.0},"6":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}},"df":17,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"22":{"tf":2.0},"26":{"tf":1.0},"27":{"tf":1.0},"30":{"tf":1.4142135623730951},"34":{"tf":1.0},"4":{"tf":1.7320508075688772},"42":{"tf":2.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"1":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"6":{"tf":1.0}}}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"16":{"tf":1.4142135623730951},"24":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"1":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"u":{"df":6,"docs":{"19":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.0},"50":{"tf":1.7320508075688772},"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":2,"docs":{"52":{"tf":1.0},"54":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"15":{"tf":1.7320508075688772}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"0":{"tf":1.0},"43":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"19":{"tf":1.0},"21":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.4142135623730951}},"f":{"df":3,"docs":{"0":{"tf":1.0},"16":{"tf":1.0},"40":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"13":{"tf":1.0},"16":{"tf":1.0},"26":{"tf":1.0},"34":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}}}}}}}},"i":{"a":{"df":3,"docs":{"21":{"tf":1.0},"32":{"tf":1.0},"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"27":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"42":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"53":{"tf":1.0}}}},"y":{"df":5,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0},"9":{"tf":1.0}}}},"df":1,"docs":{"24":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"11":{"tf":1.0},"53":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"31":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":4,"docs":{"1":{"tf":1.0},"22":{"tf":1.7320508075688772},"26":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"c":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"24":{"tf":1.0},"33":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"24":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":5,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"24":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"31":{"tf":1.0}}}}}}},"x":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":9,"docs":{"11":{"tf":1.0},"12":{"tf":1.4142135623730951},"19":{"tf":1.0},"2":{"tf":2.8284271247461903},"20":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"42":{"tf":2.0},"9":{"tf":2.0}}},"y":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"'":{"df":0,"docs":{},"r":{"df":2,"docs":{"46":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}},"z":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"9":{"tf":1.0}}}}},"breadcrumbs":{"root":{"0":{".":{".":{"6":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{")":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":4,"docs":{"24":{"tf":1.0},"30":{"tf":1.0},"42":{"tf":1.4142135623730951},"51":{"tf":1.0}},"x":{"6":{"4":{"2":{"6":{"5":{"df":0,"docs":{},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"1":{"0":{"0":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"2":{"1":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"6":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"12":{"tf":1.0}}},"4":{"8":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":1,"docs":{"12":{"tf":1.0}},"u":{"6":{"4":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"6":{"4":{"df":1,"docs":{"16":{"tf":2.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"_":{"df":2,"docs":{"2":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"a":{"[":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}},"_":{"3":{"2":{"0":{"df":1,"docs":{"42":{"tf":2.23606797749979}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":3,"docs":{"20":{"tf":1.0},"26":{"tf":1.0},"42":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":2,"docs":{"26":{"tf":1.4142135623730951},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"10":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}},"d":{"d":{"df":2,"docs":{"42":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"a":{"df":2,"docs":{"16":{"tf":1.0},"20":{"tf":1.0}},"s":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"6":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":10,"docs":{"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"4":{"tf":1.4142135623730951},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}},"g":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":2,"docs":{"15":{"tf":1.0},"4":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.0},"2":{"tf":1.7320508075688772},"34":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":6,"docs":{"23":{"tf":2.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"27":{"tf":1.0},"30":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"df":16,"docs":{"14":{"tf":1.7320508075688772},"15":{"tf":1.0},"16":{"tf":2.6457513110645907},"2":{"tf":1.7320508075688772},"24":{"tf":1.0},"28":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772},"30":{"tf":2.6457513110645907},"31":{"tf":2.0},"32":{"tf":2.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":2.23606797749979},"36":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"19":{"tf":1.0},"9":{"tf":1.7320508075688772}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.7320508075688772}}}}}},"t":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":5,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":2.23606797749979},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"34":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}}},"b":{"[":{"(":{"df":0,"docs":{},"i":{"*":{"8":{")":{".":{".":{"(":{"(":{"df":0,"docs":{},"i":{"+":{"1":{")":{"*":{"8":{")":{"]":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"(":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"_":{"3":{"2":{"1":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"27":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"13":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":6,"docs":{"2":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.7320508075688772},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}},"i":{"c":{"df":2,"docs":{"19":{"tf":1.0},"6":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"z":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":2.449489742783178},"42":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"35":{"tf":1.0}}}}},"df":3,"docs":{"46":{"tf":1.0},"49":{"tf":1.0},"52":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"46":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.7320508075688772}}}}}},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"25":{"tf":1.0},"30":{"tf":1.0},"53":{"tf":1.0}}}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":4,"docs":{"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"21":{"tf":1.0},"9":{"tf":1.4142135623730951}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}},"df":0,"docs":{}},"t":{"df":2,"docs":{"26":{"tf":1.0},"37":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":5,"docs":{"10":{"tf":1.0},"11":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"31":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":3,"docs":{"22":{"tf":2.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"0":{"tf":1.0},"42":{"tf":1.0}}},"l":{">":{":":{":":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":4,"docs":{"20":{"tf":1.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"8":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"2":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"31":{"tf":1.0},"7":{"tf":2.449489742783178}}}}}},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"13":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":3,"docs":{"10":{"tf":1.0},"25":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"df":1,"docs":{"50":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"52":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"20":{"tf":1.0}}}}},"n":{"d":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":4,"docs":{"16":{"tf":1.4142135623730951},"27":{"tf":2.0},"32":{"tf":1.0},"53":{"tf":1.0}},"s":{"!":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"c":{"(":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}},"p":{"df":1,"docs":{"2":{"tf":1.0}}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"2":{"tf":1.4142135623730951},"7":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"u":{"1":{"6":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"50":{"tf":1.0}}},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":2,"docs":{"19":{"tf":1.0},"2":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"16":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"25":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{}}}},"f":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":3,"docs":{"0":{"tf":1.0},"25":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.7320508075688772}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":2,"docs":{"2":{"tf":1.0},"33":{"tf":1.0}},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":7,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.7320508075688772},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.0}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":14,"docs":{"0":{"tf":1.0},"24":{"tf":1.7320508075688772},"4":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.7320508075688772},"46":{"tf":2.0},"47":{"tf":1.7320508075688772},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"50":{"tf":1.4142135623730951},"51":{"tf":2.8284271247461903},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":2.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"25":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}},"x":{"df":1,"docs":{"4":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}}}}},"n":{"c":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"36":{"tf":1.0}}}},"df":0,"docs":{}},"d":{"1":{"df":1,"docs":{"11":{"tf":1.0}}},"2":{"df":1,"docs":{"11":{"tf":1.0}}},"df":1,"docs":{"12":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"11":{"tf":2.0},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"49":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"25":{"tf":1.4142135623730951},"8":{"tf":1.7320508075688772}}}}},"df":2,"docs":{"2":{"tf":1.0},"8":{"tf":1.0}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.7320508075688772},"49":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"34":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"12":{"tf":1.0},"22":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.0},"44":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"7":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"30":{"tf":1.4142135623730951}}}},"x":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"10":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":2.0}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"5":{"tf":1.0},"54":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":2,"docs":{"25":{"tf":1.0},"32":{"tf":1.4142135623730951}}},"t":{"df":1,"docs":{"32":{"tf":1.0}}}},"y":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"i":{"df":2,"docs":{"34":{"tf":1.0},"53":{"tf":1.0}}}},"q":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"c":{"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":4,"docs":{"1":{"tf":1.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"46":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":11,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"3":{"tf":1.7320508075688772},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"1":{"tf":1.4142135623730951},"32":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"18":{"tf":1.0},"23":{"tf":1.0},"42":{"tf":1.0},"51":{"tf":2.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"10":{"tf":1.0}}}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"_":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"d":{"(":{"*":{"df":0,"docs":{},"k":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}},"df":5,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":2.0},"49":{"tf":1.0},"51":{"tf":2.23606797749979},"54":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"6":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"0":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":6,"docs":{"1":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"37":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":5,"docs":{"25":{"tf":1.0},"33":{"tf":1.0},"51":{"tf":2.0},"52":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}},"y":{"df":1,"docs":{"24":{"tf":1.0}}}},"df":1,"docs":{"2":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"52":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"52":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"13":{"tf":1.0},"16":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"19":{"tf":1.7320508075688772},"2":{"tf":2.23606797749979},"20":{"tf":1.7320508075688772},"26":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"df":2,"docs":{"50":{"tf":1.0},"52":{"tf":1.0}},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":2.0}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":8,"docs":{"16":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.4142135623730951},"51":{"tf":2.6457513110645907}}}}}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"4":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":12,"docs":{"1":{"tf":1.0},"44":{"tf":2.0},"45":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"37":{"tf":1.0},"47":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"13":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"49":{"tf":1.0}}}}}}}}}}},"v":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"15":{"tf":1.0}}}}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"21":{"tf":1.0},"52":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{".":{".":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":1,"docs":{"22":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":4,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}}}},"s":{"df":2,"docs":{"10":{"tf":1.0},"26":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":4.58257569495584}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"30":{"tf":1.0},"33":{"tf":1.0},"42":{"tf":1.0}}}}}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"48":{"tf":1.0}}}}},"o":{"d":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":1,"docs":{"21":{"tf":1.4142135623730951}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"m":{"df":8,"docs":{"17":{"tf":2.0},"18":{"tf":1.4142135623730951},"19":{"tf":2.449489742783178},"2":{"tf":1.7320508075688772},"20":{"tf":1.7320508075688772},"21":{"tf":1.0},"49":{"tf":1.7320508075688772},"50":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"19":{"tf":1.0}}}}}}},"r":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":5,"docs":{"12":{"tf":1.0},"21":{"tf":2.449489742783178},"24":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"t":{"c":{"df":5,"docs":{"13":{"tf":1.0},"15":{"tf":1.0},"25":{"tf":1.4142135623730951},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"26":{"tf":1.0}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"37":{"tf":2.0},"42":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"_":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"21":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"1":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.23606797749979},"19":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"26":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"24":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"l":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":2,"docs":{"2":{"tf":1.0},"51":{"tf":2.23606797749979}}}}}}}},"f":{"(":{"[":{"a":{"df":1,"docs":{"2":{"tf":1.0}}},"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"9":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"8":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.0}}}}}}}},"df":2,"docs":{"1":{"tf":1.0},"46":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"1":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"50":{"tf":1.0},"54":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"55":{"tf":1.4142135623730951}}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"6":{"5":{"4":{"4":{"2":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"df":6,"docs":{"4":{"tf":1.0},"42":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0}}},"l":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"48":{"tf":1.0}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"52":{"tf":1.0},"53":{"tf":1.0}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"51":{"tf":1.0}}}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"n":{"df":5,"docs":{"2":{"tf":1.0},"27":{"tf":2.0},"42":{"tf":1.4142135623730951},"5":{"tf":1.0},"7":{"tf":1.0}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"42":{"tf":1.0},"47":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":6,"docs":{"12":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}}},"o":{"(":{"b":{"a":{"df":0,"docs":{},"r":{"(":{"0":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"21":{"tf":1.0}}}}},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"x":{"df":1,"docs":{"18":{"tf":1.0}}}},":":{":":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":1,"docs":{"19":{"tf":1.0}}},"b":{"(":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"(":{"df":0,"docs":{},"y":{",":{"df":0,"docs":{},"z":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"16":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"19":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"b":{"df":0,"docs":{},"i":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.4142135623730951}}}}},"df":3,"docs":{"25":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0}}},"t":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":4,"docs":{"10":{"tf":1.0},"18":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"27":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"2":{"a":{"d":{"d":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"(":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{":":{":":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"42":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.0}}}}}},":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"(":{"&":{"b":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":3.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.4142135623730951}}}}}}},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"u":{"df":1,"docs":{"55":{"tf":1.0}},"s":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":2,"docs":{"55":{"tf":1.0},"9":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"32":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":1,"docs":{"32":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"32":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"32":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":13,"docs":{"0":{"tf":1.0},"2":{"tf":2.0},"21":{"tf":1.0},"22":{"tf":1.0},"25":{"tf":1.4142135623730951},"27":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"5":{"tf":2.6457513110645907},"50":{"tf":1.0},"51":{"tf":2.23606797749979},"7":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}}}},"g":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"df":1,"docs":{"42":{"tf":1.0}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.0},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":1.4142135623730951},"6":{"tf":1.0}}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"30":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"1":{"tf":1.4142135623730951},"25":{"tf":1.0}}}},"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"21":{"tf":1.0},"24":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"51":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"44":{"tf":1.0}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{".":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"'":{"df":2,"docs":{"25":{"tf":1.0},"9":{"tf":1.0}}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"(":{"&":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{":":{":":{"<":{"df":0,"docs":{},"u":{"8":{">":{":":{":":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"(":{"6":{"4":{"df":1,"docs":{"7":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{},"x":{"df":1,"docs":{"5":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}}},"df":48,"docs":{"0":{"tf":2.449489742783178},"1":{"tf":3.0},"10":{"tf":1.4142135623730951},"11":{"tf":1.4142135623730951},"12":{"tf":1.7320508075688772},"13":{"tf":1.4142135623730951},"14":{"tf":1.0},"15":{"tf":1.7320508075688772},"16":{"tf":1.4142135623730951},"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"19":{"tf":1.7320508075688772},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.7320508075688772},"22":{"tf":3.1622776601683795},"23":{"tf":1.4142135623730951},"24":{"tf":2.0},"25":{"tf":1.4142135623730951},"26":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"4":{"tf":2.449489742783178},"42":{"tf":2.23606797749979},"44":{"tf":1.0},"46":{"tf":2.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"5":{"tf":2.0},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"53":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.0},"6":{"tf":2.0},"7":{"tf":1.7320508075688772},"8":{"tf":1.4142135623730951},"9":{"tf":2.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":1,"docs":{"44":{"tf":1.0}}},"l":{"df":2,"docs":{"21":{"tf":2.0},"50":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"c":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"p":{"df":1,"docs":{"1":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"22":{"tf":1.0}}}}}},"n":{"c":{"df":3,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"11":{"tf":1.0},"51":{"tf":1.0}}}},"x":{"df":2,"docs":{"26":{"tf":1.4142135623730951},"32":{"tf":1.4142135623730951}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"46":{"tf":1.4142135623730951}}}},"r":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"o":{"d":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":2,"docs":{"50":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{":":{":":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{}},"df":1,"docs":{"50":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"50":{"tf":1.7320508075688772}}}}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"2":{"tf":1.0},"52":{"tf":1.0},"7":{"tf":1.7320508075688772}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.0},"24":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.4142135623730951},"53":{"tf":1.0},"54":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":4,"docs":{"2":{"tf":1.4142135623730951},"4":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.7320508075688772}}}},"s":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"n":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":2,"docs":{"49":{"tf":1.0},"7":{"tf":1.0}},"x":{"df":5,"docs":{"15":{"tf":1.0},"16":{"tf":1.0},"2":{"tf":1.0},"30":{"tf":1.0},"51":{"tf":1.0}}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"20":{"tf":1.0},"24":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"1":{"tf":1.0},"42":{"tf":1.0},"48":{"tf":1.4142135623730951},"52":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"49":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"25":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":8,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"50":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"12":{"tf":1.0},"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"a":{"d":{"df":3,"docs":{"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"50":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":9,"docs":{"10":{"tf":1.0},"2":{"tf":2.23606797749979},"24":{"tf":1.7320508075688772},"25":{"tf":2.23606797749979},"26":{"tf":1.7320508075688772},"27":{"tf":2.0},"30":{"tf":1.0},"53":{"tf":1.0},"6":{"tf":1.0}}},"n":{"d":{"df":1,"docs":{"16":{"tf":1.0}}},"df":0,"docs":{}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"37":{"tf":1.0}}}}},"f":{"a":{"c":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":1,"docs":{"2":{"tf":1.0}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"30":{"tf":1.0},"37":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":2.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"'":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.0},"2":{"tf":1.0}}},"r":{"df":1,"docs":{"30":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"j":{"df":0,"docs":{},"o":{"b":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}},"u":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"46":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"0":{"3":{"0":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"n":{"d":{"df":1,"docs":{"24":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"49":{"tf":1.0}},"n":{"df":1,"docs":{"35":{"tf":1.0}}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":26,"docs":{"0":{"tf":2.0},"1":{"tf":2.8284271247461903},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"3":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":1.4142135623730951},"51":{"tf":1.0},"54":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}},"e":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"26":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"52":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"48":{"tf":1.0},"9":{"tf":1.0}}}},"n":{"df":1,"docs":{"30":{"tf":1.0}},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.0},"30":{"tf":1.0},"35":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"46":{"tf":1.4142135623730951},"5":{"tf":1.0}}}}}},"i":{"b":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":22,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"22":{"tf":2.23606797749979},"23":{"tf":1.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"27":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":2.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":1,"docs":{"50":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"55":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":2.0},"24":{"tf":1.0}}}}}},"o":{"c":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":2,"docs":{"50":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"t":{"df":2,"docs":{"47":{"tf":1.0},"48":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"10":{"tf":2.23606797749979},"2":{"tf":1.0}}}},"t":{"df":1,"docs":{"25":{"tf":1.0}}},"w":{".":{".":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":2,"docs":{"37":{"tf":1.0},"48":{"tf":1.0}}}},"k":{"df":0,"docs":{},"e":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"52":{"tf":1.0}}}},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":3,"docs":{"22":{"tf":1.0},"27":{"tf":1.0},"52":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"19":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"21":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"1":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"23":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"46":{"tf":1.0},"48":{"tf":1.0}}}},"df":1,"docs":{"52":{"tf":1.0}}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"51":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"22":{"tf":2.449489742783178},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.4142135623730951},"52":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"1":{"tf":1.0}}}},"df":0,"docs":{}}},"x":{"df":1,"docs":{"12":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"2":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"11":{"tf":1.0},"30":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"2":{"tf":1.0},"26":{"tf":1.0}}}},"df":2,"docs":{"2":{"tf":1.0},"4":{"tf":2.0}},"o":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"a":{"d":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":9,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"25":{"tf":1.0},"34":{"tf":1.0},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"u":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"2":{"tf":1.4142135623730951},"7":{"tf":1.0},"9":{"tf":2.0}}}},"df":0,"docs":{}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}},"df":3,"docs":{"2":{"tf":1.4142135623730951},"49":{"tf":1.0},"50":{"tf":1.4142135623730951}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}}}}}}}}}}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}}}}}},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"!":{"(":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"42":{"tf":1.0}}}}}}},"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"16":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"df":0,"docs":{},"e":{"d":{"df":4,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"49":{"tf":1.7320508075688772},"52":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"g":{"df":1,"docs":{"54":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}},"w":{"df":7,"docs":{"16":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"48":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"16":{"tf":1.0}}}}},"n":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"34":{"tf":1.0}},"e":{"df":1,"docs":{"48":{"tf":1.0}}}},"t":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":7,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"24":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"_":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"_":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"2":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"24":{"tf":2.0}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"df":1,"docs":{"42":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.0},"26":{"tf":1.0}}}}}},"n":{"df":3,"docs":{"18":{"tf":1.0},"25":{"tf":1.0},"50":{"tf":1.0}},"e":{"_":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":15,"docs":{"15":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.4142135623730951},"25":{"tf":1.0},"28":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772},"30":{"tf":1.7320508075688772},"31":{"tf":1.7320508075688772},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.7320508075688772},"36":{"tf":1.7320508075688772}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"<":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":3,"docs":{"11":{"tf":1.0},"20":{"tf":1.4142135623730951},"4":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"37":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"47":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"53":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"_":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}},"t":{"df":2,"docs":{"0":{"tf":1.0},"37":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"30":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"26":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"34":{"tf":1.4142135623730951}}}},"df":1,"docs":{"34":{"tf":1.4142135623730951}}}}},"p":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":2.0}}}}}},"df":0,"docs":{},"t":{"df":3,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"53":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"31":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"7":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":3,"docs":{"47":{"tf":1.0},"50":{"tf":1.0},"9":{"tf":1.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"19":{"tf":1.0},"2":{"tf":2.23606797749979},"21":{"tf":1.0},"4":{"tf":1.0}}}}}}}},"df":1,"docs":{"2":{"tf":2.6457513110645907}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"21":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"52":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"46":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}}}}}}}},"i":{"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"7":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"1":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.0}}}}},"p":{"df":1,"docs":{"15":{"tf":1.0}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"6":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"51":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"55":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"12":{"tf":1.0}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":1,"docs":{"51":{"tf":1.4142135623730951}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"33":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0},"6":{"tf":1.4142135623730951}}}}},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"51":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":6,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.4142135623730951},"2":{"tf":1.0},"22":{"tf":1.4142135623730951},"4":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"4":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":2.8284271247461903}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"49":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}}},"t":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"1":{"tf":1.0}}}},"i":{"d":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"15":{"tf":1.0},"27":{"tf":1.0},"37":{"tf":1.4142135623730951},"48":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":3,"docs":{"13":{"tf":2.0},"27":{"tf":2.0},"50":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"25":{"tf":1.0}}}}}}},"df":5,"docs":{"25":{"tf":1.7320508075688772},"26":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"15":{"tf":1.0},"36":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":2.6457513110645907}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":2.449489742783178}}}},"df":0,"docs":{}}}},"df":1,"docs":{"0":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"21":{"tf":1.0},"25":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"10":{"tf":1.0}}}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"51":{"tf":1.0}}}},"d":{"df":1,"docs":{"31":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":5,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"2":{"tf":1.4142135623730951},"21":{"tf":1.0},"9":{"tf":1.0}}}}}}}},"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"2":{"tf":1.0},"7":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":4,"docs":{"12":{"tf":1.0},"46":{"tf":1.0},"52":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":1,"docs":{"53":{"tf":1.0}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"37":{"tf":1.0},"54":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.4142135623730951}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"15":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.4142135623730951},"52":{"tf":1.0}}}},"v":{"df":1,"docs":{"50":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"1":{"tf":1.0},"10":{"tf":1.4142135623730951},"17":{"tf":1.0},"19":{"tf":1.0},"25":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}},":":{":":{"<":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"<":{"df":0,"docs":{},"u":{"8":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"<":{"df":0,"docs":{},"t":{",":{"df":0,"docs":{},"u":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}}},"df":3,"docs":{"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"53":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"o":{"df":1,"docs":{"51":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":4,"docs":{"2":{"tf":1.0},"21":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"7":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"42":{"tf":1.0}}}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}}},"n":{"df":2,"docs":{"42":{"tf":1.7320508075688772},"54":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"'":{"df":2,"docs":{"4":{"tf":1.0},"51":{"tf":1.0}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"37":{"tf":1.0}}}}}}}},"df":19,"docs":{"0":{"tf":1.0},"1":{"tf":2.449489742783178},"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"16":{"tf":1.0},"19":{"tf":1.0},"21":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"4":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.4142135623730951},"49":{"tf":2.0},"50":{"tf":1.0},"51":{"tf":1.7320508075688772},"53":{"tf":1.0},"6":{"tf":1.0},"9":{"tf":1.0}},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"48":{"tf":1.0}}}},"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"7":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}},"w":{"a":{"b":{"df":0,"docs":{},"e":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"2":{"tf":1.4142135623730951}},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"33":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"t":{"df":4,"docs":{"16":{"tf":1.0},"2":{"tf":1.0},"25":{"tf":2.449489742783178},"53":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"37":{"tf":1.0},"44":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"25":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"21":{"tf":1.0},"53":{"tf":1.0}},"n":{"df":1,"docs":{"51":{"tf":1.0}}}},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"34":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"1":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"<":{"df":0,"docs":{},"u":{"3":{"2":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{}},"8":{"df":2,"docs":{"15":{"tf":1.0},"7":{"tf":1.0}}},"df":0,"docs":{}}},"df":4,"docs":{"15":{"tf":2.23606797749979},"2":{"tf":1.0},"32":{"tf":1.0},"35":{"tf":1.0}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":16,"docs":{"14":{"tf":1.7320508075688772},"15":{"tf":1.7320508075688772},"16":{"tf":1.0},"2":{"tf":1.4142135623730951},"24":{"tf":1.0},"27":{"tf":1.4142135623730951},"28":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772},"30":{"tf":2.6457513110645907},"31":{"tf":2.0},"32":{"tf":1.7320508075688772},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":2.449489742783178},"53":{"tf":1.0}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"0":{"tf":1.0}}}},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"c":{"df":0,"docs":{},"t":{"_":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"37":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"10":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"df":1,"docs":{"42":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"22":{"tf":1.7320508075688772},"49":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}},"df":1,"docs":{"6":{"tf":1.0}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.0},"42":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":3,"docs":{"18":{"tf":1.0},"37":{"tf":1.0},"4":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"2":{"tf":1.0},"7":{"tf":1.0}}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"16":{"tf":1.7320508075688772},"26":{"tf":1.0},"32":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"35":{"tf":1.0},"36":{"tf":1.4142135623730951}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"53":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"47":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"16":{"tf":1.0},"49":{"tf":1.0},"53":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"49":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"f":{"df":11,"docs":{"0":{"tf":1.4142135623730951},"1":{"tf":1.7320508075688772},"16":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.4142135623730951},"35":{"tf":1.4142135623730951},"36":{"tf":1.4142135623730951},"37":{"tf":1.0},"39":{"tf":1.7320508075688772},"51":{"tf":1.0},"54":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"r":{"c":{"/":{"<":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{">":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"v":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"15":{"tf":1.0},"22":{"tf":1.4142135623730951},"24":{"tf":1.0},"25":{"tf":1.0},"27":{"tf":1.0},"44":{"tf":1.0},"51":{"tf":1.0},"53":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"48":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"15":{"tf":1.0}}}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"4":{"tf":1.0},"53":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"9":{"tf":1.4142135623730951}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":6,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":2.23606797749979},"2":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"5":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"35":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":15,"docs":{"22":{"tf":1.7320508075688772},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"50":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"18":{"tf":1.0},"19":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"12":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"2":{"tf":1.7320508075688772},"32":{"tf":1.0},"53":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"17":{"tf":2.0},"18":{"tf":3.0},"19":{"tf":1.0},"2":{"tf":1.7320508075688772},"20":{"tf":1.4142135623730951},"21":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":8,"docs":{"25":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.7320508075688772},"53":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"19":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"9":{"tf":1.0}}}},"t":{"df":4,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"46":{"tf":1.0},"51":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"df":5,"docs":{"1":{"tf":1.4142135623730951},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":10,"docs":{"15":{"tf":1.0},"17":{"tf":1.0},"19":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"21":{"tf":1.0},"31":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"9":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"42":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"51":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"4":{"tf":1.0}}}}}}}},"t":{"(":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"42":{"tf":1.0},"51":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":3,"docs":{"25":{"tf":1.0},"35":{"tf":1.0},"5":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":1,"docs":{"26":{"tf":1.0}}}},"n":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"y":{"2":{"0":{"0":{"4":{"df":1,"docs":{"55":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"2":{"tf":2.0}},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"4":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"p":{"2":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"_":{"a":{"d":{"d":{"_":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"(":{"a":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"42":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":5,"docs":{"0":{"tf":1.0},"22":{"tf":1.0},"42":{"tf":2.449489742783178},"43":{"tf":1.7320508075688772},"54":{"tf":2.8284271247461903}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"1":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"37":{"tf":1.0}}},"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"48":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"20":{"tf":1.0},"51":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":1,"docs":{"22":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"53":{"tf":1.0}}}}}}},"u":{"df":2,"docs":{"18":{"tf":1.0},"34":{"tf":1.0}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"25":{"tf":1.0}}},"df":3,"docs":{"15":{"tf":1.0},"20":{"tf":1.0},"25":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"k":{"df":1,"docs":{"55":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"0":{"tf":1.0},"1":{"tf":1.0}}}},"p":{"df":3,"docs":{"16":{"tf":1.0},"21":{"tf":1.0},"5":{"tf":1.0}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"50":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}}}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"24":{"tf":1.7320508075688772},"30":{"tf":1.4142135623730951},"37":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":6,"docs":{"13":{"tf":1.0},"27":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"y":{"df":1,"docs":{"49":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"e":{"df":2,"docs":{"12":{"tf":1.0},"7":{"tf":1.0}},"|":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":1,"docs":{"2":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"53":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"53":{"tf":1.0}}}},"p":{"df":0,"docs":{},"l":{"df":4,"docs":{"2":{"tf":1.7320508075688772},"6":{"tf":1.0},"7":{"tf":1.0},"9":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"53":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":4,"docs":{"25":{"tf":1.0},"30":{"tf":1.0},"34":{"tf":1.0},"53":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"1":{"tf":1.0}}},"df":0,"docs":{}}}}}},"y":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"51":{"tf":1.0}}}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{":":{"b":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":4,"docs":{"46":{"tf":1.7320508075688772},"48":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":2.23606797749979}},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"r":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":23,"docs":{"15":{"tf":1.7320508075688772},"16":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.6457513110645907},"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":2.0},"25":{"tf":1.4142135623730951},"26":{"tf":1.0},"30":{"tf":1.7320508075688772},"32":{"tf":1.0},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.8284271247461903},"52":{"tf":1.4142135623730951},"53":{"tf":1.0},"6":{"tf":2.8284271247461903},"7":{"tf":1.4142135623730951}}}}}},"u":{"1":{"2":{"8":{"df":1,"docs":{"26":{"tf":1.0}}},"df":0,"docs":{}},"6":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":1,"docs":{"27":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"3":{"2":{"df":3,"docs":{"24":{"tf":1.0},"25":{"tf":1.4142135623730951},"6":{"tf":1.0}}},"df":0,"docs":{}},"6":{"4":{":":{":":{"a":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"(":{"df":0,"docs":{},"g":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"27":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"o":{"_":{"b":{"df":0,"docs":{},"e":{"_":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"(":{"df":0,"docs":{},"x":{"df":1,"docs":{"27":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":4,"docs":{"19":{"tf":1.0},"24":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"8":{"(":{"df":0,"docs":{},"e":{")":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"(":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":4,"docs":{"16":{"tf":1.7320508075688772},"25":{"tf":1.4142135623730951},"32":{"tf":1.0},"42":{"tf":1.0}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"33":{"tf":1.0},"36":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"46":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"19":{"tf":1.0}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"t":{"df":3,"docs":{"2":{"tf":2.0},"54":{"tf":2.0},"6":{"tf":1.0}},"|":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"u":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"|":{"df":0,"docs":{},"i":{"8":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"34":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"d":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":2,"docs":{"22":{"tf":1.0},"51":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"30":{"tf":1.0},"6":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"30":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"21":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"g":{"df":6,"docs":{"38":{"tf":1.7320508075688772},"39":{"tf":1.0},"40":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.0}}}},"df":17,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"10":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"22":{"tf":2.0},"26":{"tf":1.0},"27":{"tf":1.0},"30":{"tf":1.4142135623730951},"34":{"tf":1.0},"4":{"tf":1.7320508075688772},"42":{"tf":2.0},"49":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"1":{"tf":1.0},"17":{"tf":1.0},"20":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"6":{"tf":1.0}}}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"16":{"tf":1.4142135623730951},"24":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"1":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}},"u":{"df":6,"docs":{"19":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"7":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":2.0},"50":{"tf":1.7320508075688772},"9":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":2,"docs":{"52":{"tf":1.0},"54":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"c":{"df":1,"docs":{"15":{"tf":1.7320508075688772}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"0":{"tf":1.0},"43":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"19":{"tf":1.0},"21":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.4142135623730951}},"f":{"df":5,"docs":{"0":{"tf":1.0},"16":{"tf":1.0},"40":{"tf":1.7320508075688772},"41":{"tf":1.0},"42":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"13":{"tf":1.0},"16":{"tf":1.0},"26":{"tf":1.0},"34":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951}}}}}}}},"i":{"a":{"df":3,"docs":{"21":{"tf":1.0},"32":{"tf":1.0},"51":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"27":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":2.0}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"42":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"42":{"tf":1.0},"53":{"tf":1.0}}}},"y":{"df":5,"docs":{"1":{"tf":1.0},"21":{"tf":1.0},"48":{"tf":1.0},"51":{"tf":1.0},"9":{"tf":1.0}}}},"df":1,"docs":{"24":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"11":{"tf":1.0},"53":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"25":{"tf":1.0},"34":{"tf":1.0},"51":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"31":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":4,"docs":{"1":{"tf":1.0},"22":{"tf":1.7320508075688772},"26":{"tf":1.0},"53":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"c":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":2,"docs":{"24":{"tf":1.0},"33":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"24":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":14,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"24":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.7320508075688772},"46":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"15":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"0":{"tf":1.0},"31":{"tf":1.0}}}}}}},"x":{"[":{"df":0,"docs":{},"e":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":9,"docs":{"11":{"tf":1.0},"12":{"tf":1.4142135623730951},"19":{"tf":1.0},"2":{"tf":2.8284271247461903},"20":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"42":{"tf":2.0},"9":{"tf":2.0}}},"y":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}},"df":5,"docs":{"12":{"tf":1.0},"18":{"tf":1.0},"21":{"tf":1.0},"24":{"tf":1.0},"9":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"'":{"df":0,"docs":{},"r":{"df":2,"docs":{"46":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":1,"docs":{"55":{"tf":1.0}}}}}}}}}},"z":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":3,"docs":{"18":{"tf":1.0},"42":{"tf":1.0},"9":{"tf":1.0}}}}},"title":{"root":{"a":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}}}}},"r":{"a":{"df":0,"docs":{},"y":{"df":5,"docs":{"14":{"tf":1.0},"16":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"9":{"tf":1.0}}}}}},"t":{"df":2,"docs":{"48":{"tf":1.0},"49":{"tf":1.0}}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"53":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"30":{"tf":1.0}}},"i":{"c":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"7":{"tf":1.0}}}}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"31":{"tf":1.0}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"29":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"45":{"tf":1.0}}}}}},"n":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"11":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"55":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"32":{"tf":1.0}}}}}}},"q":{"df":1,"docs":{"41":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"3":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"51":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"44":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"17":{"tf":1.0},"19":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"21":{"tf":1.0}}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"12":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"51":{"tf":1.0}}}}}}}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"h":{"a":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":4,"docs":{"1":{"tf":1.0},"22":{"tf":1.0},"3":{"tf":1.0},"48":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":1,"docs":{"21":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":3,"docs":{"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0}}}},"r":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"1":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"46":{"tf":1.0}}}}}},"i":{"b":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"50":{"tf":1.0}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"24":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"28":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"47":{"tf":1.0}}}},"df":0,"docs":{}}},"w":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"34":{"tf":1.0}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"53":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"42":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"33":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":5,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"36":{"tf":1.0}}},"df":0,"docs":{}}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":3,"docs":{"35":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"d":{"df":1,"docs":{"22":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"17":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"43":{"tf":1.0},"54":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"24":{"tf":1.0},"30":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"49":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"6":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"54":{"tf":1.0}}}}},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"43":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"45":{"tf":1.0}}}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}} \ No newline at end of file diff --git a/archive/src/SUMMARY.md b/archive/src/SUMMARY.md deleted file mode 100644 index 6ff0d4f..0000000 --- a/archive/src/SUMMARY.md +++ /dev/null @@ -1,22 +0,0 @@ -# Summary - -- [Introduction](./readme.md) -- [The hacspec language](./language/readme.md) - - [Syntax](./language/syntax.md) - - [Core](./language/core.md) - - [Sequences and arrays](./language/seq.md) - - [Structs and enums](./language/enums.md) - - [Error handling](./language/errors.md) -- [The hacspec std library](./std/readme.md) - - [Arithmetic](./std/arithmetic.md) - - [Sequence and array operations](./std/seq.md) -- [Examples](./examples/readme.md) -- [Usage](./usage/readme.md) - - [Specifications](./usage/specifications.md) - - [Verification](./usage/verification.md) - - [Test Vectors](./usage/test_vectors.md) -- [For Developers](./developers/readme.md) - - [Working on the compiler](./developers/compiler.md) - ---- -[Contributors](misc/contributors.md) diff --git a/archive/src/developers/compiler.md b/archive/src/developers/compiler.md deleted file mode 100644 index 48a8dde..0000000 --- a/archive/src/developers/compiler.md +++ /dev/null @@ -1,152 +0,0 @@ -# Working on the compiler - -## High-level architecture - -![Hacspec compiler architecture](hacspec_architecture.png) - -The Rustspec compiler intervenes after the regular Rust typechecking, -by translating the Rust AST into a stricter hacspec AST, -yielding error messages if you're not in the subset. - -The hacspec AST then undergoes a typechecking phase that replicates the -formal typechecking judgment of hacspec, before being compiled -to the proof backends like F* or Coq. - -## Code organization - -The source code for the compiler is located in the `language/` folder. -`main.rs` is the file containing the driver for the different compiler -passes. - -### Hacspec AST - -The main file of the compiler is `rustspec.rs` and it contains the AST -structure. - -Types are usually enclosed into `Spanned<...>` blocks that attach a location -information to an AST node, thereby providing a way to display beautiful error -message. - -Several nodes also contain a `Fillable<...>` node standing for information -that is filled by the typechecking phase but that can be left to `None` when -building the AST. - -### Translation from Rust AST - -This phase is contained in `ast_to_rustspec.rs`. The trickyness of this -translation is that it needs to be aware of certain special names contained -in the structure `SpecialNames`. Indeed, while the Rust AST treats the application -enum constructors like function applications, the hacspec AST considers them as -proper injection so we need to distinguish them in the Rust AST. For that, we -need to know all declared enums at this point of the program. - -Enums and other `SpecialNames` are also defined in the `ExternalData` that -contains the signatures and types imported in crates used by the hacspec -program being compiled. - -### Name resolution - -When the translation from Rust AST is finished, the identifiers for all -variables inside function bodies are of the following type: - -```rust, noplaypen -pub enum Ident { - Unresolved(String), - Local(LocalIdent), - TopLevel(TopLevelIdent), -} -``` - -More precisely, they are still in the `Ident::Unresolved` case. The compiler -pass in `name_resolution.rs` resolves the identifiers by linking them to local or global identifiers, -each one having a unique ID. hacspec does not feature De Bruijn variable -handling, instead relying on unique fresh IDs for differentiating local -and global variables from each other. - -### External data - -A hacspec file can never (in principal) be considered alone, as it usually imports -at least several other crates like the hacspec standard library. These external -crates must pre-populate the typechecking context with the types and function -signatures that they define. - -It's the job of `hir_to_rustspec.rs` to retrieve this data. The critical -piece of code in this file is [the following](https://github.com/hacspec/hacspec/blob/cc609254b0aa978646f494291b9c91a92fe107ee/language/src/hir_to_rustspec.rs#L733-L737): - -```rust, noplaypen -let num_def_ids = crate_store.num_def_ids_untracked(*krate_num); -let def_ids = (0..num_def_ids).into_iter().map(|id| DefId { - krate: *krate_num, - index: DefIndex::from_usize(id), -}); -``` - -First, we retrieve the number of exported symbols by an external crate using -`num_def_ids_untracked`, a function that is [specifically labeled](https://github.com/rust-lang/rust/pull/85889) -as critical to the hacspec compiler in the Rust compiler codebase. Then, -we manufacture definition IDs for all these exported symbols, relying on the -invariant that they are numbered from 0 to the number of exported symbols -in Rust's compiled crate metadata format. - -Then, we use those definition IDs (`DefId`) to query the Rust compiler -via the central [`TyCtxt`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.TyCtxt.html) -data structure. If the `DefId` corresponds to a type definition, we examine the -type definition structurally and check whether it corresponds to a hacspec-compatible -type definition. Notably, the type definitions generated by macros like `array!` -or `nat_mod!` are only seen here in their expanded version, so we have to retro-engineer -which expanded version corresponds to which macro expansion. This is a vulnerability -of the compiler since it's possible to break the abstraction of the language -by smuggling in a type not defined via a hacspec macro this way. That's why hacspec -developers should be very careful about which dependencies they import in order -to have a 100% safety guarantee. - -For `DefId`s corresponding to functions, the signature of the function is analysed -and if it fits the subset of types expected by hacspec, the function is imported -along with its type in a pre-populated typechecking context. - -Note that it is not possible any more at this point to retrieve the `#[in_hacspec]`, -`#[unsafe_hacspec]`, etc. attributes that would tag the external definitions, -since these attributes get erased by the Rust compiler before reaching the -compiled crates metadata. - - -### Typechecking - -The typechecking is done in `typechecker.rs` and follows a very regular structure, -making heavy use of immutable data structures to not mess up the various -context manipulations. - -Note that we need to perform a full typechecking complete with method resolution -because the proof backends need very fine-grained typechecking information -to generate correct code. - -Be careful: types often need to be de-aliased with `dealias_type` before -being matched on structurally. Forgetting to dealias will lead to bugs with -type aliases. - -### Proof backends - -The different proof backends (`rustspec_to_fstar.rs`, etc) all enjoy a similar -structure that ought to be refactored to showcase their commonality. The backends -don't use an intermediate AST to generate the code in the proof assistant but -rather directly print code as string using the [`pretty`](https://crates.io/crates/pretty) -pretty-printing library. If you want to start a new proof backend, the easiest -solution is probably to copy an existing proof backend and tweak it until -you get the right result. - -The code generation has to be fine-tuned to interface with a replica of the -hacspec standard library in the host proof assistant, whose correspondence with -the original hacspec library in Rust is part of the trusted code base. More specially, -clever solutions to encode sequences and array, as well as all the different types -of public and secret machine integers, and the interaction between the two -(seeing a double as a string of bytes) have to be implemented through proof -assistant libraries. - -## Unit tests - -The compiler has various unit tests that are controlled trough the `language/tests` -files. Please enrich the unit tests bases in `language-tests`, -`negative-language-tests` and `test-crate` as you implement new features for -the compiler. The compiler can also be tested against all the hacspec cryptographic -specifications by running `examples/typecheck_examples.sh` from the root of -the repository. diff --git a/archive/src/developers/readme.md b/archive/src/developers/readme.md deleted file mode 100644 index 23e6310..0000000 --- a/archive/src/developers/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -# For Developers - -This section contains a handy guide for hacspec developers working on the -standard library or the compiler. diff --git a/archive/src/examples/readme.md b/archive/src/examples/readme.md deleted file mode 100644 index 46897ea..0000000 --- a/archive/src/examples/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# Examples - -The main [hacspec repository] contains a set of [example specifications]. -In this section we pull out some interesting bits to demonstrate the hacspec -language. - -There's also a provider that bundles the different cryptographic primitives -into a single library. -The provider implements the [RustCrypto traits] in order to facilitate interoperability. - -[RustCrypto traits]: https://github.com/RustCrypto/traits -[hacspec repository]: https://github.com/hacspec/hacspec/ -[example specifications]: https://github.com/hacspec/hacspec/tree/master/examples diff --git a/archive/src/language/core.md b/archive/src/language/core.md deleted file mode 100644 index 79ec4b5..0000000 --- a/archive/src/language/core.md +++ /dev/null @@ -1,157 +0,0 @@ -# The core of hacspec - -## Crates and modules - -hacspec only supports single-module crates, due to a technical limitation -of the Rust compiler. Inside this single file, a hacspec program shall always -start with: - -```rust, noplaypen -use hacspec_lib::*; - -// Optional: dependencies on other crates containing hacspec programs -use other_hacpsec_crate::*; -``` - -No other form of `use` is allowed in hacspec, because allowing Rust's -complex import patterns would increase the complexity of the hacspec compiler -and conflict with the module systems of most proof assistants. - -## Functions - -hacspec is a functional language, and only supports the declaration of -top-level functions: - -```rust, noplaypen -fn hacspec_function(x: bool) -> () { - ... -} -``` - -The functions can take any number of arguments, and may return a value (or not). -Note that recursive functions are forbidden in hacspec. - -The control flow inside hacspec functions is limited, as `return` statements -are forbidden. - -## Basic Types - -hacspec supports all the Rust primitive types: integers (signed and unsigned), -booleans, unit, tuples. hacspec possesses some support for generic -types, but only for primitive types defined by the language creators, and -not for user-defined types. - -Type aliases are allowed in hacspec: - -```rust, noplaypen -type OneTypeAlias = u32; -``` - -## Borrows - -hacspec forbids mutable borrows in all places. Immutable borrows are allowed -in hacspec, but only for function arguments. Indeed, you can declare a function -argument as immutably borrowed: - -```rust, noplaypen -fn hacspec_function(arg: &Seq) { - ... -} -``` - -You can also immutably borrow a value at the call site of a function: - -```rust, noplaypen -hacspec_function(&Seq::::new(64)) -``` - -In particular, return types cannot contain references, and the same is true -for types inside tuples or any data structure. - -## Constants - -hacspec allows the declaration of constants: - -```rust, noplaypen -const ONE_CONST : bool = false; -``` - -## Assignments - -Inside a function body, hacspec allows regular Rust let-bindings: - -```rust, noplaypen -let x = ...; -``` - -hacspec also allows mutable let bindings, and subsequent reassignments: - -```rust, noplaypen -let mut x = ...; -... -x = ...; -``` - -This allowing of mutable variable might come as a contradiction to hacspec's -philosophy of forbidding mutable state. But in fact, mutable local variables in -hacspec can be translated to a completely side-effect free form with a state-passing -like monadic structure. - -Left-hand sides of assignments support destructuring, which is currently the -only way to access the members of a tuple: - -```rust, noplaypen -let (x, y) = z; -``` - -## Loops - -Looping is severely restricted in hacspec compared to Rust, as the only accepted form is -`for` looping with a counter over an integer range: - -```rust, noplaypen -for i in low..hi { - ... // The block can use i and reassign mutable variables -} -``` - -The motivation for this restriction is to ease the proof of termination of -loops. `break` or `continue` statements are forbidden. - -## Conditionals - -hacspec allows statement-like conditionals as well as expression-like -conditionals: - -```rust, noplaypen -if cond1 { - ... // the block can modify mutable variables -} else { // else block is optional here - ... -} -let x = if cond2 { ... } else { ... }; -``` - -## Statements and expressions - -In regular Rust, statements and expressions can be mixed together freely. -This not the case in hacspec that imposes a strict precedence of statements -over expressions. For instance, the following code is not allowed in -hacspec: - -```rust, noplaypen -let x = if cond { - y = true; // ERROR: the reassignment is a statement, which cannot - // be contained in the expression to which x is assigned. - 3 -} else { - 4 -}; -``` - -## Visibility - -hacspec allows for both `pub` and non-`pub` versions of item declarations -(pub, non-pub, etc). You simply have to respect the Rust visibility rules. Note -that these visibility distinctions might not be translated in the proof -backends. diff --git a/archive/src/language/enums.md b/archive/src/language/enums.md deleted file mode 100644 index 7fc0975..0000000 --- a/archive/src/language/enums.md +++ /dev/null @@ -1,71 +0,0 @@ -# Structs and enums - -hacspec also supports user-defined structs and enums with some restrictions. - -## Structs - -The only form of struct declaration currently allowed in hacspec is: - -```rust, noplaypen -struct Foo(u32, Seq); -``` - -The struct thus declared can have one or more components. This form of struct -declaration effectively corresponds to a single-case enum, and is implemented -as such. Struct components can be accessed through let-binding destructuring: - -```rust, noplaypen -let Foo(x, y) = z; -``` - -Note that you can't store borrowed types inside hacspec structs, hence there is no -need for lifetime variables. - -## Enums - -hacspec supports very restricted `enum` declarations: - -```rust, noplaypen -enum Foo { - CaseA, - CaseB(u16), - CaseC(Seq, u64) -} -``` - -These declaration don't support the basic Rust features such as C-style -union declarations with assignments for each case. - -Enumeration values can be pattern-matched in an expression: - -```rust, noplaypen -match x { - Foo::CaseA => ..., - Foo::CaseB(y) => ..., - Foo::CaseC(y,z) => ... -} -``` - -Note that you can't store borrowed types inside hacspec enums, hence there is no -need for lifetime variables. - -## Option and Result - -User-defined structs and enums presented above don't support generic type -parameters yet. However, the built-in enums `Option` and `Result` -support type parameters. Those type parameters have to be explicitly declared -each time, as hacspec does not currently support type inference: - -```rust, noplaypen -match x { - Result::, bool>::Ok(y) => ..., - Result::, bool>::Err(err) => ... -} -``` - -Such type parameter declaration is cumbersome; as a workaround we advise -to declare a type alias as such: - -```rust, noplaypen -type MyResult = Result::, bool>; -``` diff --git a/archive/src/language/errors.md b/archive/src/language/errors.md deleted file mode 100644 index 30c3e6b..0000000 --- a/archive/src/language/errors.md +++ /dev/null @@ -1,16 +0,0 @@ -# Error handling - -Error handling in Rust is done via the `Result` type (see the structs and -enums section). But on top of explicit pattern-matching, hacspec also -supports the popular `?` operator to quickly perform an early return and -propagate the error case upwards. - -`?` is only allowed at the very end of an expression in a let-binding or -reassignment statement: - -```rust, noplaypen -let x = foo(true)?; // GOOD -let y = foo(bar(0)?); // ERROR: the ? is not at the end of the statement -``` - -Currently, `?` is the only way to return early in a hacspec function. diff --git a/archive/src/language/readme.md b/archive/src/language/readme.md deleted file mode 100644 index 7d8d768..0000000 --- a/archive/src/language/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# The hacspec language - -This section gives an informal description of the hacspec language, whose -goal is to provide hands-on documentation for users of the language. For -a formal specification of the semantics of the language, please refer -to the [technical report][1]. - -hacspec is a domain-specific language embedded inside Rust. This means that -all correct hacspec programs are correct Rust programs: you can use -the usual Rust tooling for working on your hacspec developments. However, -hacspec is a strict subset of Rust: this means that some features of Rust -are forbidden inside hacspec. The goal of restricting the expressiveness of -the language is twofold: first, help domain experts such as cryptographers -convey their specifications in a fashion that should help them avoid -mistakes; second, provide a way for Rust programmers to interact with theorem -provers such as F\* or Coq. - -[1]: https://hal.inria.fr/hal-03176482 diff --git a/archive/src/language/seq.md b/archive/src/language/seq.md deleted file mode 100644 index 1f32d5d..0000000 --- a/archive/src/language/seq.md +++ /dev/null @@ -1,32 +0,0 @@ -# Sequences and arrays - -## Sequences - -The staple `Vec` type is forbidden in hacspec. Instead, you have to use the -type `Seq`, which is implemented as a wrapper around `Vec`. - -The most notable differences between `Seq` and `Vec` is that `Seq` is not -resizable, and does not support `push` and `pop` operations. Instead, the -final length of the seq has to be provided at creation time. See the -hacspec standard library documentation for more details. - -`Seq` is a built-in generic type that always has to be indexed by the content of the -cells: `Seq`, etc. - -## Arrays - -The native Rust array types `[, ]` is forbidden in -hacspec. Instead, you have to declare nominally at the top-level new array types -for a specific cell content and size with: - -```rust, noplaypen -array!(FooArray, u8, 64); -// This declares type FooArray as an array of u8 of size 64 -bytes!(BarArray, 64); -// bytes! is a specialized version of array! with secret bytes -array!(BazArray, u8, 64, type_for_indexes:BazIndex); -// The additional argument type_for_indexes defines an alias of usize -// intended to spot which usizes are used to index BazArray (useful for -// verification) -``` - diff --git a/archive/src/language/syntax.md b/archive/src/language/syntax.md deleted file mode 100644 index 317173b..0000000 --- a/archive/src/language/syntax.md +++ /dev/null @@ -1,58 +0,0 @@ -# Syntax - -``` -P ::= [i]\* Program items -i ::= array!(t, μ, n) Array type declaration where n is a natural number - | nat_mod!(t, n) Modular integer - | fn f([d]+) -> μ b Function declaration - | type t = enum { [c(μ)]+ } Enum declaration (with constructors) - | type t = struct([μ]+) Struct declaration (without named fields) - | const x: μ = e Constant declaration - | use crate::* External crate import - | use mod::* Internal module import -d ::= x: τ Function argument - | mut x: τ Mutable function argument -μ ::= unit|bool|u8|U8|i8|I8... Base types - | Seq<μ> Sequence - | String Strings - | ([μ]+) Tuple - | unit Unit type - | t Named type -τ ::= μ Plain type - | &μ Immutable reference -b ::= {[s;]+} Block -p ::= x Variable pattern - | ([p]+) Tuple pattern - | t (p) Struct constructor pattern - | _ Wildcard pattern -s ::= let p: τ = e Let binding - | let mut p: τ = e Mutable let binding - | x = e Variable reassignment - | x = e? Variable reassignment with result/option catching - | let p: τ = e? Let binding with result/option catching - | if e then b (else b) Conditional statements - | c(e) Enum injection - | match e { [c(p) => e]+ } Pattern matching - | for x in e..e b For loop (integers only) - | e Return expression - | b Statement block -e ::= ()|true|false Unit and boolean literals - | n Integer literal - | U8(e)|I8(e)|... Secret integer classification - | "..." String literal - | t([e]+) Array literal - | e as μ Integer casting - | x Variable - | () Unit - | f([a]+) Function call - | if e then e else e Conditional expression - | e ⊙ e Binary operations - | ⊘ e Unary operations - | ([e]+) Tuple constructor - | x[e] Array or sequence index -a ::= e Linear argument - | &e Call-site borrowing -⊙ ::= + | - | * | / | && - | || | == | != | > | < -⊘ ::= - | ~ -``` diff --git a/archive/src/misc/contributors.md b/archive/src/misc/contributors.md deleted file mode 100644 index adc2dc2..0000000 --- a/archive/src/misc/contributors.md +++ /dev/null @@ -1,15 +0,0 @@ -# Contributors - -A list of contributors to the hacspec project. - -- Franziskus Kiefer ([franziskuskiefer](https://github.com/franziskuskiefer/)) -- Denis Merigoux ([denismerigoux](https://github.com/denismerigoux)) -- Karthik Bhargavan -- Tomer Yavor ([TomerHawk](https://github.com/TomerHawk)) -- Tanmay Garg ([tanmay2004](https://github.com/tanmay2004)) -- Peter Schwabe ([cryptojedi](https://github.com/cryptojedi)) -- Kaspar Schleiser ([kaspar030](https://github.com/kaspar030)) -- [Kasserne](https://github.com/Kasserne) -- Tony Arcieri ([tarcieri](https://github.com/tarcieri)) - -If you feel you're missing from this list, feel free to add yourself in a PR. \ No newline at end of file diff --git a/archive/src/readme.md b/archive/src/readme.md deleted file mode 100644 index 7f9bfcd..0000000 --- a/archive/src/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Introduction - -hacspec is a specification language for crypto primitives, protocols, and more. -It is a subset of the [Rust] programming language, focused on functional -programming and it avoids the use of mutable state as much as possible. - -This book gives an overview of: -* [The hacspec language](./language); -* The different parts of the project: - * [the standard library](./std), - * [examples of hacspec programs](./examples); -* How to use hacspec to write [specifications] for standards and [verification]; -* How to use hacspec to generate [test vectors]; -* [Work on the hacspec compiler and tooling itself](./developers). - -For a quick introduction you can also check out these [slides] from April 2021. -An in-depth [technical report] is also available, and serves as a reference -for the language formalization. - -[slides]: https://raw.githubusercontent.com/hacspec/hacspec/master/presentation_slides.pdf -[technical report]: https://hal.inria.fr/hal-03176482 -[Rust]: https://www.rust-lang.org/ -[specifications]: ./usage/specifications.md -[verification]: ./usage/verification.md -[test vectors]: ./usage/test_vectors.md diff --git a/archive/src/std/abstract_integers.md b/archive/src/std/abstract_integers.md deleted file mode 100644 index baf0324..0000000 --- a/archive/src/std/abstract_integers.md +++ /dev/null @@ -1 +0,0 @@ -# Astract integers diff --git a/archive/src/std/arithmetic.md b/archive/src/std/arithmetic.md deleted file mode 100644 index 43b116a..0000000 --- a/archive/src/std/arithmetic.md +++ /dev/null @@ -1,76 +0,0 @@ -# Arithmetic - -hacspec overloads the arithmetic operators for a wide variety of types -corresponding to mathematical values mentioned in cryptographic specifications. - -## The `Numeric` trait - -All of these types implement the `Numeric` trait defined by the hacspec standard -library. The arithmetic operators work for all kinds of integers, but also -arrays and sequences (point-wise operations). - -Note that the list of types implementing `Numeric` is hardcoded in the -hacspec compiler, and as of this day cannot be extended by the user. - -While the Rust compiler can infer the type of integer literals automatically, -this feature is not implemented by the hacspec compiler: - -``` -let w: u32 = 0; // ERROR: an integer without a suffix will have type usize -let x: u64 = 0x64265u64; // GOOD -let y: u64 = 4u64; // GOOD -``` - -## Public and secret integers - -One of hacspec's goal is to enable users to quickly check whether their -application does not obviously break the constant-time guarantee. -Certain processor instructions take more or less time to complete depending -on their inputs, which can cause secret leakage and break the security of -an application. Hence, hacspec offers for each type of integer (`u8`, `u32`, etc.) -a mirror secret integer type (`U8`, `U32`, etc.) for which operations -that break constant-timedness are forbidden. - -This public/private distinction can be found at a lot of places in the standard -library, and is made to forbid functions and data structures from leaking secrets. - -Conversions between public and secret integers are restricted to two functions: -`classify` and `declassify`. - -## Abstract integers - -Some cryptographic specifications talk about modular arithmetic in large -fields, whose size overflows even `u128`. To ease the expression of such -specifications, hacspec offers wrapper types around `BigInt` that can be -declared using the following API: - -```rust, noplaypen -abstract_nat_mod!( - NameOfModularInts, - NameOfUnderlyingByteRepresentation, - 256, // Number of bits for the representation of the big integer, - "ffffffffffffffff00000000000065442", // Hex representation of the modulo value as hex -) - -abstract_public_nat_mod!( - ... // Public version of above -) -``` - -## Integers as bytes - -It is often useful to view an integer as a sequence of bytes that can be -manipulated individually. The hacspec standard library provides a number -of function to translate back and forth from integer to sequence of bytes: - -```rust, noplaypen -pub fn u16_to_le_bytes(x: u16) -> u16Word; - -pub fn u16_from_le_bytes(s: u16Word) -> u16; - -pub fn U64_to_be_bytes(x: U64) -> U64Word; - -pub fn U64_from_be_bytes(s: U64Word) -> U64; - -... -``` diff --git a/archive/src/std/readme.md b/archive/src/std/readme.md deleted file mode 100644 index 0392534..0000000 --- a/archive/src/std/readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# The hacspec std library - -The hacspec standard library contains a host of functions, type generators -and methods that define the base objects manipulated in classic cryptographic -primitives. - -Methods in the standard library can be divided into three categories: -1. The `not_hacspec` methods whose signature and body does not belong to the -hacspec fragment of Rust. They should not be used in hacspec code, but can -be used as helpers for e.g. testing. -2. The `unsafe_hacspec` methods whose signature belongs to hacspec but not -the body. These methods can be used in hacspec programs but their body -is part of the trusted codebase. -3. The `in_hacspec` methods whose signatures and bodies belong to the -hacspec fragment of Rust. These can be used safely in hacspec programs. diff --git a/archive/src/std/seq.md b/archive/src/std/seq.md deleted file mode 100644 index 319f3d5..0000000 --- a/archive/src/std/seq.md +++ /dev/null @@ -1,58 +0,0 @@ -# Sequence and array operations - -## Operations common to sequences and arrays - -### Base traits - -Some operations are common to both [sequences and arrays](/book/language/seq.md) -by design, and can be used as the interoperability base between the two types -of collections. These operations are the following: -* `len`: gives the length of an array or sequence; -* `iter`: iterates over the content of the array or sequence -(unsafe in hacspec but can be used for implementing primitives) -* `create`: creates a sequence or array and initializes the elements to the -default value (0 for arithmetic types); -* `update_slice`, `update` and `update_start`: produce a new sequence or array -with modified contents. - -Both sequences and arrays implement indexing with any type of unsigned public -integer. - -### Chunking - -Both arrays and sequences support chunking with methods like: -* `num_chunks` and `num_exact_chunks` (whole or partial blocks); -* `get_chunk`, `get_exact_chunk` and `get_remainder_chunk`; -* `set_chunk` and `set_exact_chunk`. - -The read operations borrow the sequence or array, but the write operations -create a new sequence or array. - -### Conversions - -Sequences and arrays can be created from other types via methods like: -* `from_public_slice` and `from_slice`; -* `from_vec` and `from_native_slice`; -* `from_public_seq` and `from_seq` (to convert a seq into an array of the correct size); -* `from_string` and `from_hex` for byte or hex strings (hex only for `u8` sequences and arrays). - -### Secrecy - -The methods prefixed by `public` performs an element-wise classification of the -data under the hood. - -### Ownage - -Some methods have two versions: an `owned` and a non-`owned` version, depending -on whether the `self` argument is consumed or not by the method. This distinction -is useful to avoid unnecessary copies and thus be more performant. - -## Array-specific operations - -Since array length is known statically, `new` does not take any argument, -same as `length`. `slice`s of arrays become `Seq`. - -## Sequence-specific operations - -Sequences can be extended (by creating a new sequence under the hood) with -`push` or `concat`. Sequences can also be sliced with `slice`. diff --git a/archive/src/usage/readme.md b/archive/src/usage/readme.md deleted file mode 100644 index 8f04b05..0000000 --- a/archive/src/usage/readme.md +++ /dev/null @@ -1 +0,0 @@ -# Usage diff --git a/archive/src/usage/specifications.md b/archive/src/usage/specifications.md deleted file mode 100644 index 247b185..0000000 --- a/archive/src/usage/specifications.md +++ /dev/null @@ -1 +0,0 @@ -# Specifications diff --git a/archive/src/usage/test_vectors.md b/archive/src/usage/test_vectors.md deleted file mode 100644 index 4e7735f..0000000 --- a/archive/src/usage/test_vectors.md +++ /dev/null @@ -1 +0,0 @@ -# Test Vectors diff --git a/archive/src/usage/verification.md b/archive/src/usage/verification.md deleted file mode 100644 index d7ae51f..0000000 --- a/archive/src/usage/verification.md +++ /dev/null @@ -1,65 +0,0 @@ -# Verification - -## Coq - -### QuickCheck / QuickChick - -You can test your hacspec code using [QuickCheck](https://github.com/BurntSushi/quickcheck) (a Rust library for randomized property-based testing), by simply implementing `quickcheck::Arbitrary` for the type you want to generate tests for. For example: -```rust,ignore -impl Arbitrary for Fp { - fn arbitrary(g: &mut Gen) -> Fp { - let mut a: [u64; 6] = [0; 6]; - for i in 0..6 { - a[i] = u64::arbitrary(g); - } - let mut b: [u8; 48] = [0; 48]; - for i in 0..6 { - let val: u64 = a[i]; - b[(i*8)..((i+1)*8)].copy_from_slice(&(val.to_le_bytes())); - } - Fp::from_byte_seq_le(Seq::::from_public_slice(&b)) - } -} -``` -then you can use the `quickcheck` attribute, to make QuickCheck do property based testing for this function: -```rust,ignore -#[cfg(test)] -#[quickcheck] //Using the fp arbitraty implementation from above to generate fp2 elements. -fn test_fp2_prop_add_neg(a: Fp2) -> bool { - let b = fp2neg(a); - fp2fromfp(Fp::ZERO()) == fp2add(a, b) -} -``` -which will run when you do `cargo test`. If you then add the tag `#[cfg(proof)]` and export to Coq, -``` -cargo hacspec -o coq/src/.v -``` -then you get corresponding [QuickChick](https://github.com/QuickChick/QuickChick) test, -``` -Definition test_fp2_prop_add_neg (a_320 : fp2) : bool := - let b_321 := - fp2neg (a_320) in - (fp2fromfp (nat_mod_zero )) =.? (fp2add (a_320) (b_321)). - -QuickChick (forAll g_fp2 (fun a_320 : fp2 =>test_fp2_prop_add_neg a_320)). -``` -and generators will be constructed for the types automatically as, -``` -Instance show_fp : Show (fp) := Build_Show (fp) (fun x => show (GZnZ.val _ x)). -Definition g_fp : G (fp) := @bindGen Z (fp) (arbitrary) (fun x => returnGen (@Z_in_nat_mod _ x)). -Instance gen_fp : Gen (fp) := Build_Gen fp g_fp. -``` -which you can then run through coq in the folder `coq/` -``` -coqc -R src/ Hacspec src/.v -``` -Make sure you run: -``` -coqc -R src/ Hacspec src/MachineIntegers.v -coqc -R src/ Hacspec src/Lib.v -``` -or `make` to generate the `.vo` files used by `.v`. - -For more information: -- on QuickCheck (in rust): [BurntSushi/quickcheck](https://github.com/BurntSushi/quickcheck) -- on QuickChick: [Software foundations book on QuickChick](https://softwarefoundations.cis.upenn.edu/qc-current/index.html) diff --git a/archive/std/arithmetic.html b/archive/std/arithmetic.html new file mode 100644 index 0000000..72fc235 --- /dev/null +++ b/archive/std/arithmetic.html @@ -0,0 +1,284 @@ + + + + + + Arithmetic - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Arithmetic

+

hacspec overloads the arithmetic operators for a wide variety of types +corresponding to mathematical values mentioned in cryptographic specifications.

+

The Numeric trait

+

All of these types implement the Numeric trait defined by the hacspec standard +library. The arithmetic operators work for all kinds of integers, but also +arrays and sequences (point-wise operations).

+

Note that the list of types implementing Numeric is hardcoded in the +hacspec compiler, and as of this day cannot be extended by the user.

+

While the Rust compiler can infer the type of integer literals automatically, +this feature is not implemented by the hacspec compiler:

+
let w: u32 = 0; // ERROR: an integer without a suffix will have type usize
+let x: u64 = 0x64265u64; // GOOD
+let y: u64 = 4u64; // GOOD
+
+

Public and secret integers

+

One of hacspec's goal is to enable users to quickly check whether their +application does not obviously break the constant-time guarantee. +Certain processor instructions take more or less time to complete depending +on their inputs, which can cause secret leakage and break the security of +an application. Hence, hacspec offers for each type of integer (u8, u32, etc.) +a mirror secret integer type (U8, U32, etc.) for which operations +that break constant-timedness are forbidden.

+

This public/private distinction can be found at a lot of places in the standard +library, and is made to forbid functions and data structures from leaking secrets.

+

Conversions between public and secret integers are restricted to two functions: +classify and declassify.

+

Abstract integers

+

Some cryptographic specifications talk about modular arithmetic in large +fields, whose size overflows even u128. To ease the expression of such +specifications, hacspec offers wrapper types around BigInt that can be +declared using the following API:

+
abstract_nat_mod!(
+    NameOfModularInts,
+    NameOfUnderlyingByteRepresentation,
+    256, // Number of bits for the representation of the big integer,
+    "ffffffffffffffff00000000000065442", // Hex representation of the modulo value as hex
+)
+
+abstract_public_nat_mod!(
+    ... // Public version of above
+)
+

Integers as bytes

+

It is often useful to view an integer as a sequence of bytes that can be +manipulated individually. The hacspec standard library provides a number +of function to translate back and forth from integer to sequence of bytes:

+
pub fn u16_to_le_bytes(x: u16) -> u16Word;
+
+pub fn u16_from_le_bytes(s: u16Word) -> u16;
+
+pub fn U64_to_be_bytes(x: U64) -> U64Word;
+
+pub fn U64_from_be_bytes(s: U64Word) -> U64;
+
+...
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/std/index.html b/archive/std/index.html new file mode 100644 index 0000000..26bf61d --- /dev/null +++ b/archive/std/index.html @@ -0,0 +1,244 @@ + + + + + + The hacspec std library - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

The hacspec std library

+

The hacspec standard library contains a host of functions, type generators +and methods that define the base objects manipulated in classic cryptographic +primitives.

+

Methods in the standard library can be divided into three categories:

+
    +
  1. The not_hacspec methods whose signature and body does not belong to the +hacspec fragment of Rust. They should not be used in hacspec code, but can +be used as helpers for e.g. testing.
  2. +
  3. The unsafe_hacspec methods whose signature belongs to hacspec but not +the body. These methods can be used in hacspec programs but their body +is part of the trusted codebase.
  4. +
  5. The in_hacspec methods whose signatures and bodies belong to the +hacspec fragment of Rust. These can be used safely in hacspec programs.
  6. +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/std/seq.html b/archive/std/seq.html new file mode 100644 index 0000000..ab578fb --- /dev/null +++ b/archive/std/seq.html @@ -0,0 +1,276 @@ + + + + + + Sequence and array operations - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Sequence and array operations

+

Operations common to sequences and arrays

+

Base traits

+

Some operations are common to both sequences and arrays +by design, and can be used as the interoperability base between the two types +of collections. These operations are the following:

+
    +
  • len: gives the length of an array or sequence;
  • +
  • iter: iterates over the content of the array or sequence +(unsafe in hacspec but can be used for implementing primitives)
  • +
  • create: creates a sequence or array and initializes the elements to the +default value (0 for arithmetic types);
  • +
  • update_slice, update and update_start: produce a new sequence or array +with modified contents.
  • +
+

Both sequences and arrays implement indexing with any type of unsigned public +integer.

+

Chunking

+

Both arrays and sequences support chunking with methods like:

+
    +
  • num_chunks and num_exact_chunks (whole or partial blocks);
  • +
  • get_chunk, get_exact_chunk and get_remainder_chunk;
  • +
  • set_chunk and set_exact_chunk.
  • +
+

The read operations borrow the sequence or array, but the write operations +create a new sequence or array.

+

Conversions

+

Sequences and arrays can be created from other types via methods like:

+
    +
  • from_public_slice and from_slice;
  • +
  • from_vec and from_native_slice;
  • +
  • from_public_seq and from_seq (to convert a seq into an array of the correct size);
  • +
  • from_string and from_hex for byte or hex strings (hex only for u8 sequences and arrays).
  • +
+

Secrecy

+

The methods prefixed by public performs an element-wise classification of the +data under the hood.

+

Ownage

+

Some methods have two versions: an owned and a non-owned version, depending +on whether the self argument is consumed or not by the method. This distinction +is useful to avoid unnecessary copies and thus be more performant.

+

Array-specific operations

+

Since array length is known statically, new does not take any argument, +same as length. slices of arrays become Seq.

+

Sequence-specific operations

+

Sequences can be extended (by creating a new sequence under the hood) with +push or concat. Sequences can also be sliced with slice.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/tomorrow-night.css b/archive/tomorrow-night.css new file mode 100644 index 0000000..81fe276 --- /dev/null +++ b/archive/tomorrow-night.css @@ -0,0 +1,102 @@ +/* Tomorrow Night Theme */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #de935f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rule .hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.hljs-name, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b5bd68; +} + +/* Tomorrow Aqua */ +.hljs-title, +.css .hljs-hexcolor { + color: #8abeb7; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b294bb; +} + +.hljs { + display: block; + overflow-x: auto; + background: #1d1f21; + color: #c5c8c6; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +.hljs-addition { + color: #718c00; +} + +.hljs-deletion { + color: #c82829; +} diff --git a/archive/usage/index.html b/archive/usage/index.html new file mode 100644 index 0000000..9a6d8af --- /dev/null +++ b/archive/usage/index.html @@ -0,0 +1,230 @@ + + + + + + Usage - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Usage

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/archive/usage/specifications.html b/archive/usage/specifications.html new file mode 100644 index 0000000..41924fe --- /dev/null +++ b/archive/usage/specifications.html @@ -0,0 +1,230 @@ + + + + + + Specifications - hacspec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Specifications

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/theme/index.hbs b/archive/usage/test_vectors.html similarity index 55% rename from theme/index.hbs rename to archive/usage/test_vectors.html index 080b785..cb9595b 100644 --- a/theme/index.hbs +++ b/archive/usage/test_vectors.html @@ -1,64 +1,44 @@ - + - {{ title }} - {{#if is_print }} - - {{/if}} - {{#if base_url}} - - {{/if}} + Test Vectors - hacspec - {{> head}} - - + + - {{#if favicon_svg}} - - {{/if}} - {{#if favicon_png}} - - {{/if}} - - - - {{#if print_enable}} - - {{/if}} + + + + + + - - {{#if copy_fonts}} - - {{/if}} + + - - - + + + - {{#each additional_css}} - - {{/each}} - {{#if mathjax_support}} - {{/if}}
@@ -83,7 +63,7 @@ try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { } if (theme === null || theme === undefined) { theme = default_theme; } var html = document.querySelector('html'); - html.classList.remove('{{ default_theme }}') + html.classList.remove('light') html.classList.add(theme); var body = document.querySelector('body'); body.classList.remove('no-js') @@ -110,7 +90,7 @@