├── .github └── workflows │ └── test-node.yml ├── .gitignore ├── LICENSE ├── NOTICE ├── README.md ├── index.js ├── package.json ├── raw-index.js ├── scripts └── generate.mjs └── test.js /.github/workflows/test-node.yml: -------------------------------------------------------------------------------- 1 | name: Build Status 2 | on: 3 | push: 4 | branches: 5 | - master 6 | pull_request: 7 | branches: 8 | - master 9 | jobs: 10 | build: 11 | strategy: 12 | matrix: 13 | node-version: [lts/*] 14 | os: [ubuntu-latest, macos-latest, windows-latest] 15 | runs-on: ${{ matrix.os }} 16 | steps: 17 | - uses: actions/checkout@v2 18 | - name: Use Node.js ${{ matrix.node-version }} 19 | uses: actions/setup-node@v2 20 | with: 21 | node-version: ${{ matrix.node-version }} 22 | - run: npm install 23 | - run: npm test 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | sandbox.js 3 | sandbox 4 | coverage 5 | package-lock.json 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Copyright 2024 Holepunch Inc 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # emoji-index 2 | 3 | Tiny embedded emoji index 4 | 5 | ``` 6 | npm install emoji-index 7 | ``` 8 | 9 | Is just ~75kb in size and consumes only ~60kb on memory when running. 10 | 11 | ## Usage 12 | 13 | ``` js 14 | const e = require('emoji-index') 15 | 16 | console.log(e.toEmoji('neutral')) // prints 😐 17 | console.log(e.toShortCode('😐')) // prints neutral 18 | ``` 19 | 20 | ## License 21 | 22 | Apache 2.0 23 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const b4a = require('b4a') 2 | const { KEYS, POINTS, KEY_TO_POINTS, POINTS_TO_KEY } = require('./raw-index.js') 3 | 4 | exports.toEmoji = function toEmoji (shortCode) { 5 | const shortCodeBuffer = b4a.from(shortCode) 6 | 7 | let start = 0 8 | let end = KEY_TO_POINTS.length / 3 9 | 10 | while (start < end) { 11 | const mid = (start + end) >>> 1 12 | const ptr = mid * 3 13 | 14 | const lengths = KEY_TO_POINTS[ptr] 15 | 16 | const keyLength = lengths & 255 17 | const keyOffset = KEY_TO_POINTS[ptr + 1] 18 | 19 | const keyBuffer = KEYS.subarray(keyOffset, keyOffset + keyLength) 20 | const cmp = b4a.compare(shortCodeBuffer, keyBuffer) 21 | 22 | if (cmp > 0) { 23 | start = mid + 1 24 | continue 25 | } 26 | 27 | if (cmp < 0) { 28 | end = mid === end ? end - 1 : mid 29 | continue 30 | } 31 | 32 | const codeOffset = KEY_TO_POINTS[ptr + 2] 33 | const codeLength = lengths >>> 8 34 | 35 | return String.fromCodePoint(...getCodePoint(codeOffset, codeLength)) 36 | } 37 | 38 | return '' 39 | } 40 | 41 | exports.toShortCode = function toShortCode (emoji) { 42 | const codes = exports.toCodePoints(emoji) 43 | 44 | let start = 0 45 | let end = POINTS_TO_KEY.length 46 | 47 | while (start < end) { 48 | const mid = (start + end) >>> 1 49 | const ptr = POINTS_TO_KEY[mid] * 3 50 | 51 | const lengths = KEY_TO_POINTS[ptr] 52 | 53 | const codeOffset = KEY_TO_POINTS[ptr + 2] 54 | const codeLength = lengths >>> 8 55 | 56 | const otherCodes = getCodePoint(codeOffset, codeLength) 57 | const cmp = cmpCodePoints(codes, otherCodes) 58 | 59 | if (cmp > 0) { 60 | start = mid + 1 61 | continue 62 | } 63 | 64 | if (cmp < 0) { 65 | end = mid === end ? end - 1 : mid 66 | continue 67 | } 68 | 69 | const keyLength = lengths & 255 70 | const keyOffset = KEY_TO_POINTS[ptr + 1] 71 | 72 | const keyBuffer = KEYS.subarray(keyOffset, keyOffset + keyLength) 73 | return b4a.toString(keyBuffer) 74 | } 75 | 76 | return '' 77 | } 78 | 79 | exports.toCodePoints = function (emoji) { 80 | const chars = [...emoji] 81 | const codes = new Array(chars.length) 82 | 83 | for (let i = 0; i < codes.length; i++) { 84 | codes[i] = chars[i].codePointAt(0) 85 | } 86 | 87 | return codes 88 | } 89 | 90 | function getCodePoint (offset, length) { 91 | const codes = new Array(length) 92 | 93 | for (let i = 0; i < codes.length; i++) { 94 | codes[i] = POINTS[offset + i] 95 | } 96 | 97 | return codes 98 | } 99 | 100 | function cmpCodePoints (a, b) { 101 | if (a.length !== b.length) return a.length - b.length 102 | for (let i = 0; i < a.length; i++) { 103 | if (a[i] !== b[i]) return a[i] - b[i] 104 | } 105 | return 0 106 | } 107 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emoji-index", 3 | "version": "1.2.0", 4 | "description": "Tiny embedded emoji index", 5 | "main": "index.js", 6 | "files": [ 7 | "index.js", 8 | "raw-index.js" 9 | ], 10 | "dependencies": { 11 | "b4a": "^1.6.6", 12 | "convert-endianness": "^1.0.0" 13 | }, 14 | "devDependencies": { 15 | "brittle": "^3.4.0", 16 | "node-fetch": "^3.3.2", 17 | "standard": "^17.1.0", 18 | "url-file-url": "^1.0.1" 19 | }, 20 | "scripts": { 21 | "test": "standard && brittle test.js", 22 | "generate": "node scripts/generate.mjs" 23 | }, 24 | "repository": { 25 | "type": "git", 26 | "url": "https://github.com/holepunchto/emoji-index.git" 27 | }, 28 | "author": "Holepunch Inc", 29 | "license": "Apache-2.0", 30 | "bugs": { 31 | "url": "https://github.com/holepunchto/emoji-index/issues" 32 | }, 33 | "homepage": "https://github.com/holepunchto/emoji-index" 34 | } 35 | -------------------------------------------------------------------------------- /raw-index.js: -------------------------------------------------------------------------------- 1 | // https://emojibase.dev version 15.3.0 2 | 3 | const b4a = require('b4a') 4 | const { hostToLE16, hostToLE32 } = require('convert-endianness') 5 | 6 | const INDEX = b4a.from('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XvkBAMf5AQDA+QEAVvMBAFfzAQBp+QEAU/kBAFTzAQBf8wEAVfMBAC3zAQBq+QEALvMBAC/zAQDU+gEAWfkBAMb5AQBa+QEAc/MBAFj5AQBy8wEA1foBAGP5AQBX+QEAf/MBAMj5AQDC+QEAa/kBAHHzAQBY8wEAWfMBAFrzAQBb8wEAXPMBAF3zAQBg8wEAYvMBAGPzAQBk8wEAZfMBAG75AQBh8wEAX/kBAGD5AQBh+QEAgPkBAJ75AQCQ+QEAkfkBAKr5AQBm8wEAZ/MBAGjzAQBp8wEAavMBAILzAQBw8wEAwfkBAGf5AQBr8wEAbPMBAG3zAQBu8wEAb/MBAHzzAQBb+QEAFSYAANb6AQB18wEAdvMBAH7zAQB38wEAePMBAHnzAQB68wEAe/MBAEL5AQBD+QEA1/oBAGT5AQDL+QEAw/kBAMn5AQDK+QEAYvkBAH3zAQAP/gAAdPMBAET5AQAq9QEA2foBAPrzAQAN8wEADvMBAA/zAQAQ8wEA+vUBAA/+AAD+9QEA7fkBANTzAQAP/gAA8CYAAA/+AAAL8wEA+/UBANXzAQAP/gAA1vMBAA/+AADc8wEAD/4AAN3zAQAP/gAA3vMBAA/+AADf8wEAD/4AANvzAQAP/gAA1/MBAA/+AADx+QEAqPoBALX6AQDW9gEA2PMBAA/+AADa8wEAD/4AAODzAQDh8wEA4vMBAOPzAQDk8wEA5fMBAObzAQDo8wEA6fMBAOrzAQDr8wEA7PMBAO3zAQDv8wEA8PMBAJL0AQD89QEA/fUBAOomAABM9QEA1fYBAE31AQDpJgAAD/4AAEv1AQDyJgAA+iYAAAHzAQAD8wEA2fMBAA/+AAAE8wEABfMBAAbzAQAH8wEACfMBAGgmAAAP/gAAoPMBAN32AQCh8wEAovMBAIj0AQCq8wEAgvYBAIP2AQCE9gEAhfYBAIb2AQCH9gEAiPYBAIn2AQCK9gEAnfYBAJ72AQCL9gEAjPYBAI32AQCO9gEAkPYBAJH2AQCS9gEAk/YBAJT2AQCV9gEAlvYBAJf2AQCY9gEAmfYBAPv2AQCa9gEAm/YBAJz2AQDO8wEAD/4AAM3zAQAP/gAA9fYBAL35AQC8+QEA+vYBALL2AQD09gEA+fYBAPz2AQCP9gEA4/YBAA/+AADk9gEAD/4AAOL2AQAP/gAA/SYAAN72AQCo9gEA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9/EBAObxAQD48QEA5vEBAPnxAQDm8QEA+vEBAObxAQD88QEA5vEBAP3xAQDm8QEA//EBAOfxAQDm8QEA5/EBAOfxAQDn8QEA6fEBAOfxAQDq8QEA5/EBAOvxAQDn8QEA7PEBAOfxAQDt8QEA5/EBAO7xAQDn8QEA7/EBAOfxAQDx8QEA5/EBAPLxAQDn8QEA8/EBAOfxAQD08QEA5/EBAPbxAQDn8QEA9/EBAOfxAQD48QEA5/EBAPnxAQDn8QEA+/EBAOfxAQD88QEA5/EBAP7xAQDn8QEA//EBAOjxAQDm8QEA6PEBAOjxAQDo8QEA6fEBAOjxAQDr8QEA6PEBAOzxAQDo8QEA7fEBAOjxAQDu8QEA6PEBAPDxAQDo8QEA8fEBAOjxAQDy8QEA6PEBAPPxAQDo8QEA9PEBAOjxAQD18QEA6PEBAPfxAQDo8QEA+vEBAOjxAQD78QEA6PEBAPzxAQDo8QEA/fEBAOjxAQD+8QEA6PEBAP/xAQDp8QEA6vEBAOnxAQDs8QEA6fEBAO/xAQDp8QEA8PEBAOnxAQDy8QEA6fEBAPTxAQDp8QEA//EBAOrxAQDm8QEA6vEBAOjxAQDq8QEA6vEBAOrxAQDs8QEA6vEBAO3xAQDq8QEA9/EBAOrxAQD48QEA6vEBAPnxAQDq8QEA+vEBAOvxAQDu8QEA6/EBAO/xAQDr8QEA8PEBAOvxAQDy8QEA6/EBAPTxAQDr8QEA9/EBAOzxAQDm8QEA7PEBAOfxAQDs8QEA6fEBAOzxAQDq8QEA7PEBAOvxAQDs8QEA7PEBAOzxAQDt8QEA7PEBAO7xAQDs8QEA8fEBAOzxAQDy8QEA7PEBAPPxAQDs8QEA9fEBAOzxAQD28QEA7PEBAPfxAQDs8QEA+PEBAOzxAQD58QEA7PEBAPrxAQDs8QEA/PEBAOzxAQD+8QEA7fEBAPDxAQDt8QEA8vEBAO3xAQDz8QEA7fEBAPfxAQDt8QEA+fEBAO3xAQD68QEA7vEBAOjxAQDu8QEA6fEBAO7xAQDq8QEA7vEBAPHxAQDu8QEA8vEBAO7xAQDz8QEA7vEBAPTxAQDu8QEA9vEBAO7xAQD38QEA7vEBAPjxAQDu8QEA+fEBAO/xAQDq8QEA7/EBAPLxAQDv8QEA9PEBAO/xAQD18QEA8PEBAOrxAQDw8QEA7PEBAPDxAQDt8QEA8PEBAO7xAQDw8QEA8vEBAPDxAQDz8QEA8PEBAPXxAQDw8QEA9/EBAPDxAQD88QEA8PEBAP7xAQDw8QEA//EBAPHxAQDm8QEA8fEBAOfxAQDx8QEA6PEBAPHxAQDu8QEA8fEBAPDxAQDx8QEA9/EBAPHxAQD48QEA8fEBAPnxAQDx8QEA+vEBAPHxAQD78QEA8fEBAP7xAQDy8QEA5vEBAPLxAQDo8QEA8vEBAOnxAQDy8QEA6vEBAPLxAQDr8QEA8vEBAOzxAQDy8QEA7fEBAPLxAQDw8QEA8vEBAPHxAQDy8QEA8vEBAPLxAQDz8QEA8vEBAPTxAQDy8QEA9fEBAPLxAQD28QEA8vEBAPfxAQDy8QEA+PEBAPLxAQD58QEA8vEBAPrxAQDy8QEA+/EBAPLxAQD88QEA8vEBAP3xAQDy8QEA/vEBAPLxAQD/8QEA8/EBAObxAQDz8QEA6PEBAPPxAQDq8QEA8/EBAOvxAQDz8QEA7PEBAPPxAQDu8QEA8/EBAPHxAQDz8QEA9PEBAPPxAQD18QEA8/EBAPfxAQDz8QEA+vEBAPPxAQD/8QEA9PEBAPLxAQD18QEA5vEBAPXxAQDq8QEA9fEBAOvxAQD18QEA7PEBAPXxAQDt8QEA9fEBAPDxAQD18QEA8fEBAPXxAQDy8QEA9fEBAPPxAQD18QEA9/EBAPXxAQD48QEA9fEBAPnxAQD18QEA/PEBAPXxAQD+8QEA9vEBAObxAQD38QEA6vEBAPfxAQD08QEA9/EBAPjxAQD38QEA+vEBAPfxAQD88QEA+PEBAObxAQD48QEA5/EBAPjxAQDo8QEA+PEBAOnxAQD48QEA6vEBAPjxAQDs8QEA+PEBAO3xAQD48QEA7vEBAPjxAQDv8QEA+PEBAPDxAQD48QEA8fEBAPjxAQDy8QEA+PEBAPPxAQD48QEA9PEBAPjxAQD38QEA+PEBAPjxAQD48QEA+fEBAPjxAQD78QEA+PEBAP3xAQD48QEA/vEBAPjxAQD/8QEA+fEBAObxAQD58QEA6PEBAPnxAQDp8QEA+fEBAOvxAQD58QEA7PEBAPnxAQDt8QEA+fEBAO/xAQD58QEA8PEBAPnxAQDx8QEA+fEBAPLxAQD58QEA8/EBAPnxAQD08QEA+fEBAPfxAQD58QEA+fEBAPnxAQD78QEA+fEBAPzxAQD58QEA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BwJtVXkKBwJ0VXsKBwKaVX0KBwKwVX8KBwK/VYEKBwLNVYMKBwLbVYUKBwLoVYcKBwL5VYkKBwIJVosKBwIeVo0KBwIsVo8KBwI8VpEKBwJIVpMKBwJcVpUKBwJtVpcKBwKGVpkKBwKVVpsKBwKmVp0KBwK0Vp8KBwLHVqEKBwLWVqMKBwLkVqUKBwLyVqcKBwL+VqkKBwIFV6sKBwIgV60KBwItV68KBwI7V7EKBwJXV7MKBwJkV7UKBwJyV7cKBwJ/V7kKBwKTV7sKBwKiV70KBwKwV78KBwK9V8EKBwLKV8MKBwLeV8UKBwLzV8cKBwISWMkKBwIqWMsKBwIxWM0KBwJPWM8KBwJiWNEKBwJuWNMKBwJ9WNUKBwKJWNcKBwKYWNkKBwKwWNsKBwLBWN0KBwLMWN8KBwLdWOEKBwLrWOMKBwICWeUKBwIPWecKBwIrWekKBwIyWesKBwJMWe0KBwJbWe8KBwJpWfEKBwJ4WfMKBwKRWfUKBwKfWfcKBwKzWfkKBwLBWfsKBwLPWf0KBwLbWf8KBwLiWQELBwL+WQMLBwIFWgULBwIZWgcLBwIuWgkLBwI8WgsLBwJHWg0LBwJeWg8LBwJlWhELBwKDWhMLBwKKWhULBwKXWhcLBwKjWhkLCgcjZnsMCgctZoIMCgc/ZokMBwK6WhsLBwLIWh0LBwLWWh8LBwLqWiELBwL5WiMLBwIFWyULBwIVWycLBwIlWykLBwIyWysLBwI/Wy0LBwJhWy8LBwJoWzELBwJ1WzMLBwKgWzULBwKwWzcLBwK7WzkLBwLPWzsLBwLcWz0LBwLsWz8LBwIJXEELBwIfXEMLBwImXEULBwIyXEcLBwJOXEkLBwJVXEsLBwJlXE0LBwJzXE8LBwKAXFELBwKSXFMLBwK8XFULBwLDXFcLBwLOXFkLBwLZXFsLBwLnXF0LBwLzXF8LBwIAXWELBwIOXWMLBwIbXWULBwInXWcLBwIzXWkLBwJMXWsLBwJTXW0LBwJpXW8LBwJwXXELBwKFXXMLBwKXXXULBwKpXXcLBwLEXXkLBwLLXXsLBwLcXX0LBwLnXX8LBwL1XYELBwIEXoMLBwIYXoULBwIoXocLBwI2XokLBwJEXosLBwJUXo0LBwJlXo8LBwJyXpELBwJ+XpMLBwKMXpULBwKZXpcLBwKnXpkLBwK4XpsLBwLIXp0LBwLZXp8LBwLwXqELBwIAX6MLBwIQX6ULBwIeX6cLBwItX6kLBwI+X6sLBwJdX60LBwJuX68LBwJ/X7ELBwKQX7MLBwKcX7ULBwKsX7cLBwK7X7kLBwLIX7sLBwLVX70LBwLkX78LBwL1X8ELBwIDYMMLBwIXYMULBwIjYMcLBwI4YMkLBwJGYMsLBwJWYM0LBwJoYM8LBwJ1YNELBwKBYNMLBwKNYNULBwKYYNcLBwKqYNkLBwK1YNsLBwLCYN0LBwLNYN8LBwLkYOELBwL7YOMLBwINYeULBwIcYecLBwIpYekLBwJCYesLBwJZYe0LBwJrYe8LBwKJYfELBwKYYfMLBwKkYfULBwKzYfcLBwK/YfkLBwLNYfsLBwLbYf0LBwLoYf8LBwL1YQEMBwICYgMMBwIVYgUMBwIrYgcMBwI8YgkMBwJIYgsMBwJVYg0MBwJlYg8MBwJ1YhEMBwKEYhMMBwKdYhUMBwKsYhcMBwK/YhkMBwLQYhsMBwLeYh0MBwLsYh8MBwL7YiEMBwINYyMMBwIwYyUMBwI3YycMBwJKYykMBwJeYysMBwJuYy0MBwKFYy8MBwKkYzEMBwKrYzMMBwLNYzUMBwLYYzcMBwLnYzkMBwL4YzsMBwIGZD0MBwIYZD8MBwIrZEEMBwI5ZEMMBwJFZEUMBwJVZEcMBwJrZEkMBwJ4ZEsMBwKFZE0MBwKUZE8MBwKiZFEMBwKvZFMMBwLJZFUMBwLgZFcMBwL3ZFkMBwIFZVsMBwIWZV0MBwIpZV8MBwJFZWEMBwJrZWMMBwJyZWUMBwKKZWcMBwKYZWkMBwKmZWsMBwK6ZW0MBwLGZW8MBwLTZXEMBwLfZXMMBwLtZXUMBwIAZncMBwINZnkMBQHaOpoHCAEMKaYFCgHNQmoICQFDPw4ICQGXLCQGDAJuT8sJCwEqQlYIFAHDPeUHBwFGCXwADAFNCXwABQFNQT8IAwEyKtUFCwHmO7QHDQFgNicHAwKbOXcHBQFvMsQGDAHwEAsBCwHGPgMIBgFyLTwGBAFWERQBCAHKO7EHCgHmJUIFDgEDMH4GEALzL3wGDgFPLlIGCAFjMsIGDAKxRJ0IBAPdUPoJEAEGK+8FAwG+JlgFCAHBJlgFEgLmPecHDgL4PecHBgKRWhULBAE3URkKDAHwLC8GDQLdWh8LEALUYN8LGwKyYzMMCQFHLTkG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DgREGzUDDQMXFc8BDwREGbYCEgRvGb8CDQQ2IPUDDgSmIAcEDQM2FdgBEgNWFiMCEgTfE4wBDQTCGdoCDQTcGhoDEwf9GiIDFAQTGIYCEgOAEkwBFAE7GIsCFwNJHGYDDwSYGJoCFQNgHGYDGwZ1HGkDDAQhGv4CDgG4PgIIEAFMPw4ICgGJPxUIHgTqHskDDwRDIkMEBgFrSS0JBAE2MaMGBQHFB2cACgHKB2cACQJpMIcGBAE1KtYFBwHCCHUADAHJCHUABgHuRt4ICQEkIj4ECQEtIj4EDAIAEQwBDQFdDKMAAwFuBT0AAQEDUNYJBQH1RwEJBAH6RwEJBAEjPuwHBAHLCo0ABwHPCo0ADAHWCo0ADQGnUkAKDAG9DcMADQETU0kKBQLaZXEMAwHLQ4IIAwFoEP8ACAIGTHEJBQHfPMkHAwFRBDIABgIHZncMBAGQBDUACQGUBDUAAwESOoMHBQE9J2gFBAPOUO4JCAIUZnkMDAGEBT8AEQGQBT8ABgERGvkCAwHBDuAAWQmHBJwCnQI+AD0AGgCIBH0JvAAoCYsBOgC8CP8DGAEVBUsJHAXdB78HHwE4AAUHSwQlAG8EdAm3AEkIhABECJ4GdwZABk4B3wMUBMAHygj0AzwBvwJtBFwIywHMAUYHfwl1CVwCEQfiBQwC3wEhArsAfAl1CHYEUwW6AAoAVgGtAegDmwQuBjUGYgZQCDYJTwltB24HbwdwB3EHcgdzB3QHdQd2B3cHeAd5B3oHewd8B30Hfgd/B4AHgQeCB4MHhAeFB4YHuAS3BL8EvgTCBL0EugS7BLMEtgS8BJ0EDwDmAdUDfAE5BpoImQhSAVMBUwfnAFoGTAnfBToCOwI8Ag0EMAZjCbkCZAn1A1YJAwVVCcUBMQa6AgQF9gOUCA8E/weEBLMIAgFCAekHWgL1AY8GCgEUCUABsAdrBJUIwgCxATgCagTiA7MFegIJBRIG5ghAAhoEyAVeCXkGFAV6AAEHNwAdBK0GqgY/AYYIQAQIB74FKQeZB5gHqgHhAVwHWAjkAOkDqgjtAV0GoAjuA7wCmQT2B5YEJAKrAUoBGgE2BeMBeQQLAaIAJAesAdwDvgjBB4YJiAEQCZcAmABnADUBHweWBwYEsQDDBE0Byge3AlsIdgCfBpoBuQjNAXkAGgImAYQJ9QVrABkEJQGoAqsHvQLZBQsGUAFSBFEA+AhRAdgIWQG5BqYB/wAiCAcA+gPfAM0DFAYVBtQHOQQTBhMJSgkWBrgHyQgTCIYAPQHiBt4G5AZnCA8JfwTaA7YH5QbHAU0JqgJ0BAIHiQSLBF4GIQdYAoAEfwBbAIUEPgWnAdcH+QF1ArEExwQqAbgAbgDdACMA5wjoCOkI6gjrCF0HBwaDBloJvgHaCBYFSAcrASgCyQFtCTwIPQh9BFsHEQRbAu8FrwdDARcC+AbMAEgCXAb5B/kAMQCWAP4EuwIRCcMAGwlPBGgATgSvALEG9AQdBysCEQEbAggGvwHbCEkHLAEpAmgIfgTwBRgC+QbwA0UEiwmRAJQG+gamBmYCNgJQBigF8ggWBxIHFAcVBz0HYAljBgAAAQBYAXUGzwHgCWUCIwb9B8sEKgLfBKsA3glBB0kEhQGxBVoAbgTIB9cA2wMGAQcB4QAKBGAFjQl7ArYBIQkiCa4B7AHuBsEA7QbqBmYGZwZmAKQBOQfJBBIEBAQoAB4AHwAtABYI5wYzBOsBKQUaBrkFPQSCALEI+wbhBD8FoQf+A7cB2gC4AWkJkwDvACAJXQgwBNoByAAgBPkJPwcHBJIHWQT/AfsAKQDPAAsK1QCnCC8C7wEeBxEGEAJhCNIIdwkCAO0F4AFlBMQB/AkZAlYCKgfsBTYB5QcABegAmAHMAy4BMwKtAnQGhwaGBvEBDAEiATgBNwGAAF4BQgezB5YGhQgICdMACwVSBlMGegHRAB4ExQB6BtQAHAbjB8sFxgiIBp8Czgc9BcYFgQagBIUGNAKhBFACVQVUBVYFVwUjByIHMwYnAA8BRAnoBUUGMwASARMBRgkdCU0HQwkyBwcIjAeNB08AUAADAuoAFwZDBcUFcASLAEcCTgVPBTEFewHcBDAFMwmeAD4G0gAlBU4HagBNAmsGTwj3CEcGyAgeAQ4AAwCuCA0AsgLIA+sJQQRXBvEEOgTaBccI1QERCJoACQnAAIEJZQfHAAIFAQUoCCcIKQgqCEwAQADYBPkFrwjPBWEBaQFrAW0BbwFxAXMBdQF3AWIBZAFmAWgBagFsAW4BcAFyAXQBdgF4AWMBZQFnAW4F2wVQCbkAAAblCHwIxgTlBSkEjwDRBC0ELgQvBAcFPwQ2CIgJywDTB4kHWwQ0CDcILAZhAioJJwKzBp0BmwHmBMQA6wToBHMCiQiICAUC6QkrAC0H0gG6BlEGBwLyAy8AoQJmCR0I3ggmBDwFbgKRBDUA3wdXAM4DGggSAkYGuAUrBNIEKgRcBDgI5wQvB9MB4AcgCCEINwmtB0IGIADcAOgHVQReCNwGWgfFBtsG1gOnB2gEfQhRB/4A/QD/CNUFIgV7CAAJAQkEAW0GDgkFAeAFIQCzAhsHbga9CG8GIAFsBsYA9wFSAPwI8QUFBqEIBAYUAPwH3QZiCP4IQgmiAbIHBgkfAkEGTwFJBisFFQIlB0sGpwA/BqgAAgboBkgGRgHQBeMJiQBpAOIIWwkECIgAigCkBuQBcAANBcsGCgdbBgEIcgSTBEkCigkNB24JHwUYABcA2wf7BRwBGQjTAxIIYAD2BqwHewb4CR8EPgfxAGwHyQB9BvoJIgRAB/QAZgT+BnsJ8gAABwgK6wVyAiYGzghrAqQHjQTUBQ4BVgcMBZ0HTASwAkAFwAGCASAGqAcsAkcFdAI/CHACeQgCCggILwFqAmgCYAI1B+UAkQbqBzgH0wYOBuAGKQHVBKYCuAbaBkoEDQKCCTACXQEVCWYIEAQEAAUABgDgALYF3AH8BEwI0gPKAWEA1wFsACYHKAFxACEE8weMCD8CCwSsBu8EkwYyAt4DtwhLAd4A2AGJAe0A9wY2B+UByQcbAQgFsAX0BW8AMQj1CTUIfATlCYEEjgE7BgoCZwIOB8wH+gQTBHEEyQPCASYF3AcXCS0JNQIxAocA9QeCBuMDCQH2ARgELAWUBwUIaQgJBAUKZwTSB7IIxgHZBC0FqwZzBJwGSgcvBfoF1wVtAKQIXwUWAiMIgAZ+BhgIxwOEBpQAswDkBzYEOwdnB90BQwZ5CdAAEwXZA/UImwicCL4HOQL+BbIFwAXBBT4B2QHDB6UA+wNyBngCUQkIAboFlQTNAA0J4wbwBPMBbAITAEUBZQa8BtgJ0QZcAcwGUAV3Aj4J0wVKAgAECgriAHwGrADWBw4EhgFKCGYHtQLOBMsI8gYUApUBDAC0AvQI5gBSBUQFOQXTCPQJvQfECPAAhQCpB0cIZQhfByIGdQBxBukAAwjRCCAFGwQDBy4CEQB/CPIJ0QH/Ce4EmQbWAFEF/QYqBrQF0AOjBzQBXgdiAA8CfgDcBRAANwWNAScB4gf9BHsE4wWFCRAH7wfzBPgACQb2CFMECQemBwgCnARBBUQE1wM8BN4E0QPoCZkAhwEnB+QJowI6BbABTAIpBpQEzASHCRcEJABFBbYGMwc0B+sG9gUeAsoAnwBoBsoDuAjYA8AIKweQAMoECASnBskFxAdtAm8CaQIgArQA9wDxB0gEnwcRBY4GkAYTB10EEgWgB68Bhwd8AF0C4AilBA4FSwBNAE4ARwBGAEUASQDdBEUCNAY3BwwHgwjcCKUGgQhgB0kFvwCACUEAPAB+Cb0Ajgh9ASYJRQiTAcUIeAD0BxcHFwhPB64AfwZ3CKgG/glvCXgJiAekAlsFQQFXCIQBYwQBAoYEYQekBEIEzgHCBdUHHAD9A1wAywNXCQMJjAH3A4QI9QZpBDMB+wcBBo0AqQLhBpgEvgbaBxYATwI9Ce4JsAa+ADsBDwYFBXgIRAJDAkMIWghaBFgESABDAEIARABKAD8AYgmdBqEBwAQIAGQAWAabBlUAJgDDAhUANAAuABsAOwAqADIAOQAiAF8AXgBUABkAYwDYAIEAfQCcAAAB/ABzAAMBoQDbAqQA9QDOACQB4wByAKYA2wDZAJsAnQAWAYoBoAEwAZ8B7AKzAakBRwEUAUgBkgFfAbIB1gEdAdsBTAHnAegB+wICAhMC+AEcAh0CHQAxAT4CUwJBAgYDUgIIA1UCWQKxAqsCeQIOA5oCEAMRAxIDFgMXAxgDGQMaAxsDHAMdAx4DHwNRAiEDIgMjAyQDJQMmAycDKAMpA8gBKwMsAxcBLgMvAzADMQMyA+sANAM1AzYDNwM4AzkDOgM7AzwDPQMQAT8DlAFBA0IDQwNEAy0BRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDAQFcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgNGApwDnQNUAp8DoAMyAaIDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A+wAuwO8A70DvgO/A8ADwQPCA8MDxAPFA8EEuQTNCJMIgQGPCH8BgAF+AfoI1AODCYME3QPdBYsHiwgYBaUBrgISANcGFQT9BUwHBgYVAYwA+gB3BFUB+gFbAfsB/AEeBnMIdgmxB/sESQFjAq8CaQYlAhkBYAF1BBkF/gGWCGMIZAjTBJcGrwbgA4kGwwFZB5cBOgeZAfsI5QMjASEBrAIECVQGDQFXAWQGqgfqAWAIDwWbB3cA5wm0AQAIoACVAEME+gdhBv8FUgf8BSYIzQfQAU0EVgAGCnAGHwnUCOEDwAIQCO4HQgI6BvMAJAW2AO0HtQD0BnQFbAV1BZ4FnAVhBaMFcgWAAoICpAWPBY0FmgViBXYFqwWWBW0FYwWqBYMFgQWhCZkJognLCckJjgnQCZ8JjwKRAtEJvAm6CccJjwmjCdkJwwmaCZAJ1wmwCa4JXgIRApkCqAHDBhgGiggOCFMAvwh2AsMIXwa/BdkHWQC2AuwGaAfeAXQAegnPBs0GfgLuAF4EzgXFCZgF3wbOCaEFzwmiBVQHzwQZB38FhwWQBawJtAm9CcAJkwXhCcwF2gmsBZMJZgXWCakFmAlrBdIJpQWrCX4FqQl8BagJewWfBFAEUQSmCXkFpwl6BZUJaAXCCZUFpAl3BcEJlAXECZcFkgllBbsJjgXUCacF6QaeCXEFswmGBcgJmwWWCWkFtQmIBeIJzQW/CZIFvgmRBcwJnwXNCaAFygmdBbYJiQXWBvQB8gFUBNQE/AaRCWQFsgmFBZcJagWtCYAFuQmMBaAJcwXTCaYF0QXSBZ0JcAWlCXgF3QmvBZQJZwW4CYsFqgl9BQIJZAKBAoMChAKFAocCigKMApACkgKTApQClgKcCW8FtQZ8An8CuQGuBYQFggW6AbwB3AmxCa8J8AbQBs4GxgmZBU4CFAMVA4YCiAKJAosCjQKOApUClwKYAtUJqAW3CYoFfQLiBOME5QRyZWdpb25hbF9pbmRpY2F0b3JfYXJlZ2lvbmFsX2luZGljYXRvcl9icmVnaW9uYWxfaW5kaWNhdG9yX2NyZWdpb25hbF9pbmRpY2F0b3JfZHJlZ2lvbmFsX2luZGljYXRvcl9lcmVnaW9uYWxfaW5kaWNhdG9yX2ZyZWdpb25hbF9pbmRpY2F0b3JfZ3JlZ2lvbmFsX2luZGljYXRvcl9ocmVnaW9uYWxfaW5kaWNhdG9yX2lyZWdpb25hbF9pbmRpY2F0b3JfanJlZ2lvbmFsX2luZGljYXRvcl9rcmVnaW9uYWxfaW5kaWNhdG9yX2xyZWdpb25hbF9pbmRpY2F0b3JfbXJlZ2lvbmFsX2luZGljYXRvcl9ucmVnaW9uYWxfaW5kaWNhdG9yX29yZWdpb25hbF9pbmRpY2F0b3JfcHJlZ2lvbmFsX2luZGljYXRvcl9xcmVnaW9uYWxfaW5kaWNhdG9yX3JyZWdpb25hbF9pbmRpY2F0b3Jfc3JlZ2lvbmFsX2luZGljYXRvcl90cmVnaW9uYWxfaW5kaWNhdG9yX3VyZWdpb25hbF9pbmRpY2F0b3JfdnJlZ2lvbmFsX2luZGljYXRvcl93cmVnaW9uYWxfaW5kaWNhdG9yX3hyZWdpb25hbF9pbmRpY2F0b3JfeXJlZ2lvbmFsX2luZGljYXRvcl96Z3Jpbm5pbmdncmlubmluZ19mYWNlZ3Jpbm5pbmdfZmFjZV93aXRoX2JpZ19leWVzc21pbGV5Z3Jpbm5pbmdfZmFjZV93aXRoX2Nsb3NlZF9leWVzc21pbGViZWFtaW5nX2ZhY2VncmlubGF1Z2hpbmdsb2xzYXRpc2ZpZWRzcXVpbnRpbmdfZmFjZWdyaW5uaW5nX2ZhY2Vfd2l0aF9zd2VhdHN3ZWF0X3NtaWxlcm9mbGpveWxtYW90ZWFyc19vZl9qb3lzbGlnaHRseV9zbWlsaW5nX2ZhY2V1cHNpZGVfZG93bl9mYWNlbWVsdG1lbHRpbmdfZmFjZXdpbmt3aW5raW5nX2ZhY2VibHVzaHNtaWxpbmdfZmFjZV93aXRoX2Nsb3NlZF9leWVzaGFsb2lubm9jZW50c21pbGluZ19mYWNlX3dpdGhfM19oZWFydHNoZWFydF9leWVzc21pbGluZ19mYWNlX3dpdGhfaGVhcnRfZXllc3N0YXJfc3RydWNrYmxvd2luZ19hX2tpc3NraXNzaW5nX2hlYXJ0a2lzc2luZ2tpc3NpbmdfZmFjZXJlbGF4ZWRzbWlsaW5nX2ZhY2VraXNzaW5nX2Nsb3NlZF9leWVza2lzc2luZ19mYWNlX3dpdGhfY2xvc2VkX2V5ZXNraXNzaW5nX2ZhY2Vfd2l0aF9zbWlsaW5nX2V5ZXNraXNzaW5nX3NtaWxpbmdfZXllc3NtaWxpbmdfZmFjZV93aXRoX3RlYXJzYXZvcmluZ19mb29keXVtZmFjZV93aXRoX3Rvbmd1ZXN0dWNrX291dF90b25ndWVzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllemFueXphbnlfZmFjZXN0dWNrX291dF90b25ndWVfY2xvc2VkX2V5ZXNtb25leV9tb3V0aF9mYWNlaHVnaHVnZ2luZ2h1Z2dpbmdfZmFjZWZhY2Vfd2l0aF9oYW5kX292ZXJfbW91dGhoYW5kX292ZXJfbW91dGhmYWNlX3dpdGhfb3Blbl9leWVzX2hhbmRfb3Zlcl9tb3V0aGdhc3BmYWNlX3dpdGhfcGVla2luZ19leWVwZWVrc2h1c2hzaHVzaGluZ19mYWNldGhpbmtpbmd0aGlua2luZ19mYWNld3Rmc2FsdXRlc2FsdXRpbmdfZmFjZXppcHBlcl9tb3V0aHppcHBlcl9tb3V0aF9mYWNlZmFjZV93aXRoX3JhaXNlZF9leWVicm93cmFpc2VkX2V5ZWJyb3duZXV0cmFsbmV1dHJhbF9mYWNlZXhwcmVzc2lvbmxlc3NleHByZXNzaW9ubGVzc19mYWNlbm9fbW91dGhkb3R0ZWRfbGluZV9mYWNlaW5fY2xvdWRzc21pcmtzbWlya2luZ3NtaXJraW5nX2ZhY2V1bmFtdXNlZHVuYW11c2VkX2ZhY2Vyb2xsaW5nX2V5ZXNncmltYWNpbmdncmltYWNpbmdfZmFjZWV4aGFsZWV4aGFsaW5nbHlpbmdseWluZ19mYWNlc2hha2luZ3NoYWtpbmdfZmFjZWhlYWRfc2hha2luZ19ob3Jpem9udGFsbHloZWFkX3NoYWtpbmdfdmVydGljYWxseXJlbGlldmVkcmVsaWV2ZWRfZmFjZXBlbnNpdmVwZW5zaXZlX2ZhY2VzbGVlcHlzbGVlcHlfZmFjZWRyb29saW5nZHJvb2xpbmdfZmFjZXNsZWVwaW5nc2xlZXBpbmdfZmFjZW1hc2ttZWRpY2FsX21hc2tmYWNlX3dpdGhfdGhlcm1vbWV0ZXJmYWNlX3dpdGhfaGVhZF9iYW5kYWdlbmF1c2VhdGVkbmF1c2VhdGVkX2ZhY2VmYWNlX3ZvbWl0aW5ndm9taXRpbmdzbmVlemluZ3NuZWV6aW5nX2ZhY2Vob3Rob3RfZmFjZWNvbGRjb2xkX2ZhY2V3b296eXdvb3p5X2ZhY2VkaXp6eV9mYWNla25vY2tlZF9vdXRkaXp6eV9leWVzZXhwbG9kaW5nX2hlYWRjb3dib3ljb3dib3lfZmFjZWhvb3JheXBhcnR5aW5ncGFydHlpbmdfZmFjZWRpc2d1aXNlZGRpc2d1aXNlZF9mYWNlc21pbGluZ19mYWNlX3dpdGhfc3VuZ2xhc3Nlc3N1bmdsYXNzZXNfY29vbHRvb19jb29sbmVyZG5lcmRfZmFjZWZhY2Vfd2l0aF9tb25vY2xlY29uZnVzZWRjb25mdXNlZF9mYWNlZmFjZV93aXRoX2RpYWdvbmFsX21vdXRod29ycmllZHdvcnJpZWRfZmFjZXNsaWdodGx5X2Zyb3duaW5nX2ZhY2V3aGl0ZV9mcm93bmluZ19mYWNlZmFjZV93aXRoX29wZW5fbW91dGhvcGVuX21vdXRoaHVzaGVkaHVzaGVkX2ZhY2Vhc3RvbmlzaGVkYXN0b25pc2hlZF9mYWNlZmx1c2hlZGZsdXNoZWRfZmFjZXBsZWFkaW5ncGxlYWRpbmdfZmFjZWZhY2VfaG9sZGluZ19iYWNrX3RlYXJzd2F0ZXJ5X2V5ZXNmcm93bmluZ2Zyb3duaW5nX2ZhY2Vhbmd1aXNoZWRhbmd1aXNoZWRfZmFjZWZlYXJmdWxmZWFyZnVsX2ZhY2Vhbnhpb3VzYW54aW91c19mYWNlY29sZF9zd2VhdGRpc2FwcG9pbnRlZF9yZWxpZXZlZHNhZF9yZWxpZXZlZF9mYWNlY3J5Y3J5aW5nX2ZhY2Vsb3VkbHlfY3J5aW5nX2ZhY2Vzb2JzY3JlYW1zY3JlYW1pbmdfaW5fZmVhcmNvbmZvdW5kZWRjb25mb3VuZGVkX2ZhY2VwZXJzZXZlcmVwZXJzZXZlcmluZ19mYWNlZGlzYXBwb2ludGVkZGlzYXBwb2ludGVkX2ZhY2Vkb3duY2FzdF9mYWNlc3dlYXR3ZWFyeXdlYXJ5X2ZhY2V0aXJlZHRpcmVkX2ZhY2V5YXdueWF3bmluZ3lhd25pbmdfZmFjZW5vc2Vfc3RlYW10cml1bXBocG91dHBvdXRpbmdfZmFjZXJhZ2VhbmdyeWFuZ3J5X2ZhY2VjZW5zb3JlZGZhY2Vfd2l0aF9zeW1ib2xzX29uX21vdXRoc21pbGluZ19pbXBhbmdyeV9pbXBpbXBza3VsbHNrdWxsX2FuZF9jcm9zc2JvbmVzcG9vcHNoaXRjbG93bmNsb3duX2ZhY2VqYXBhbmVzZV9vZ3Jlb2dyZWdvYmxpbmphcGFuZXNlX2dvYmxpbmdob3N0YWxpZW5hbGllbl9tb25zdGVyc3BhY2VfaW52YWRlcnJvYm90cm9ib3RfZmFjZWdyaW5uaW5nX2NhdHNtaWxleV9jYXRncmlubmluZ19jYXRfd2l0aF9jbG9zZWRfZXllc3NtaWxlX2NhdGpveV9jYXR0ZWFyc19vZl9qb3lfY2F0aGVhcnRfZXllc19jYXRzbWlsaW5nX2NhdF93aXRoX2hlYXJ0X2V5ZXNzbWlya19jYXR3cnlfc21pbGVfY2F0a2lzc2luZ19jYXRzY3JlYW1fY2F0d2VhcnlfY2F0Y3J5aW5nX2NhdHBvdXRpbmdfY2F0c2VlX25vX2V2aWxoZWFyX25vX2V2aWxzcGVha19ub19ldmlsbG92ZV9sZXR0ZXJjdXBpZGhlYXJ0X3dpdGhfYXJyb3dnaWZ0X2hlYXJ0aGVhcnRfd2l0aF9yaWJib25zcGFya2xpbmdfaGVhcnRncm93aW5nX2hlYXJ0aGVhcnRwdWxzZWJlYXRpbmdfaGVhcnRoZWFydGJlYXRyZXZvbHZpbmdfaGVhcnRzdHdvX2hlYXJ0c2hlYXJ0X2RlY29yYXRpb25oZWFydF9leGNsYW1hdGlvbmJyb2tlbl9oZWFydGhlYXJ0X29uX2ZpcmVtZW5kaW5nX2hlYXJ0aGVhcnRyZWRfaGVhcnRwaW5rX2hlYXJ0b3JhbmdlX2hlYXJ0eWVsbG93X2hlYXJ0Z3JlZW5faGVhcnRibHVlX2hlYXJ0bGlnaHRfYmx1ZV9oZWFydHB1cnBsZV9oZWFydGJyb3duX2hlYXJ0YmxhY2tfaGVhcnRncmF5X2hlYXJ0Z3JleV9oZWFydHdoaXRlX2hlYXJ0a2lzczEwMGFuZ2VyYm9vbWNvbGxpc2lvbmRpenp5c3dlYXRfZHJvcHNkYXNoZGFzaGluZ19hd2F5aG9sZXNwZWVjaF9iYWxsb29uZXllX2luX3NwZWVjaF9idWJibGVsZWZ0X3NwZWVjaF9idWJibGVyaWdodF9hbmdlcl9idWJibGV0aG91Z2h0X2JhbGxvb256enp3YXZld2F2aW5nX2hhbmRyYWlzZWRfYmFja19vZl9oYW5kcmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWRoaWdoX2ZpdmVyYWlzZWRfaGFuZHZ1bGNhbnJpZ2h0d2FyZHNfaGFuZGxlZnR3YXJkc19oYW5kcGFsbV9kb3ducGFsbV91cGxlZnR3YXJkc19wdXNoaW5nX2hhbmRyaWdodHdhcmRzX3B1c2hpbmdfaGFuZG9rX2hhbmRwaW5jaHBpbmNoZWRfZmluZ2Vyc3BpbmNoaW5nX2hhbmR2dmljdG9yeWZpbmdlcnNfY3Jvc3NlZGhhbmRfd2l0aF9pbmRleF9maW5nZXJfYW5kX3RodW1iX2Nyb3NzZWRsb3ZlX3lvdV9nZXN0dXJlbWV0YWxzaWduX29mX3RoZV9ob3Juc2NhbGxfbWVfaGFuZHBvaW50X2xlZnRwb2ludF9yaWdodHBvaW50X3VwbWlkZGxlX2ZpbmdlcnBvaW50X2Rvd25wb2ludF91cF8ycG9pbnRfZm9yd2FyZCsxdGh1bWJzdXB5ZXMtMW5vdGh1bWJzZG93bmZpc3RwdW5jaGxlZnRfZmFjaW5nX2Zpc3RyaWdodF9mYWNpbmdfZmlzdGNsYXBjbGFwcGluZ19oYW5kc3JhaXNlZF9oYW5kc2hlYXJ0X2hhbmRzb3Blbl9oYW5kc3BhbG1zX3VwX3RvZ2V0aGVyaGFuZHNoYWtlZm9sZGVkX2hhbmRzcHJheXdyaXRpbmdfaGFuZG5haWxfY2FyZW5haWxfcG9saXNoc2VsZmllbXVzY2xlcmlnaHRfYmljZXBtZWNoYW5pY2FsX2FybW1lY2hhbmljYWxfbGVnbGVnZm9vdGVhcmVhcl93aXRoX2hlYXJpbmdfYWlkaGVhcmluZ19haWRub3NlYnJhaW5hbmF0b21pY2FsX2hlYXJ0bHVuZ3N0b290aGJvbmVleWVzZXlldG9uZ3VlbGlwc21vdXRoYml0aW5nX2xpcGJhYnljaGlsZGJveWdpcmxhZHVsdGJsb25kX2hhaXJlZG1hbnBlcnNvbl9iZWFyZGVkbWFuX2JlYXJkZWR3b21hbl9iZWFyZGVkbWFuX3JlZF9oYWlyZWRtYW5fY3VybHlfaGFpcmVkbWFuX3doaXRlX2hhaXJlZG1hbl9iYWxkd29tYW53b21hbl9yZWRfaGFpcmVkcmVkX2hhaXJlZHdvbWFuX2N1cmx5X2hhaXJlZGN1cmx5X2hhaXJlZHdvbWFuX3doaXRlX2hhaXJlZHdoaXRlX2hhaXJlZHdvbWFuX2JhbGRiYWxkd29tYW5fYmxvbmRfaGFpcmVkbWFuX2Jsb25kX2hhaXJlZG9sZGVyX2FkdWx0b2xkZXJfbWFub2xkZXJfd29tYW5wZXJzb25fZnJvd25pbmdtYW5fZnJvd25pbmd3b21hbl9mcm93bmluZ3BlcnNvbl9wb3V0aW5ncG91dGluZ21hbl9wb3V0aW5nd29tYW5fcG91dGluZ25vX2dvb2RwZXJzb25fZ2VzdHVyaW5nX25vbWFuX2dlc3R1cmluZ19ub3dvbWFuX2dlc3R1cmluZ19ub2FsbF9nb29kcGVyc29uX2dlc3R1cmluZ19va21hbl9nZXN0dXJpbmdfb2t3b21hbl9nZXN0dXJpbmdfb2twZXJzb25fdGlwcGluZ19oYW5kbWFuX3RpcHBpbmdfaGFuZHdvbWFuX3RpcHBpbmdfaGFuZHBlcnNvbl9yYWlzaW5nX2hhbmRtYW5fcmFpc2luZ19oYW5kd29tYW5fcmFpc2luZ19oYW5kZGVhZl9wZXJzb25kZWFmX21hbmRlYWZfd29tYW5ib3dwZXJzb25fYm93aW5nbWFuX2Jvd2luZ3dvbWFuX2Jvd2luZ2ZhY2VwYWxtcGVyc29uX2ZhY2VwYWxtaW5nbWFuX2ZhY2VwYWxtaW5nd29tYW5fZmFjZXBhbG1pbmdwZXJzb25fc2hydWdnaW5nc2hydWdtYW5fc2hydWdnaW5nd29tYW5fc2hydWdnaW5naGVhbHRoX3dvcmtlcm1hbl9oZWFsdGhfd29ya2Vyd29tYW5faGVhbHRoX3dvcmtlcnN0dWRlbnRtYW5fc3R1ZGVudHdvbWFuX3N0dWRlbnR0ZWFjaGVybWFuX3RlYWNoZXJ3b21hbl90ZWFjaGVyanVkZ2VtYW5fanVkZ2V3b21hbl9qdWRnZWZhcm1lcm1hbl9mYXJtZXJ3b21hbl9mYXJtZXJjb29rbWFuX2Nvb2t3b21hbl9jb29rbWVjaGFuaWNtYW5fbWVjaGFuaWN3b21hbl9tZWNoYW5pY2ZhY3Rvcnlfd29ya2VybWFuX2ZhY3Rvcnlfd29ya2Vyd29tYW5fZmFjdG9yeV93b3JrZXJvZmZpY2Vfd29ya2VybWFuX29mZmljZV93b3JrZXJ3b21hbl9vZmZpY2Vfd29ya2Vyc2NpZW50aXN0bWFuX3NjaWVudGlzdHdvbWFuX3NjaWVudGlzdHRlY2hub2xvZ2lzdG1hbl90ZWNobm9sb2dpc3R3b21hbl90ZWNobm9sb2dpc3RzaW5nZXJtYW5fc2luZ2Vyd29tYW5fc2luZ2VyYXJ0aXN0bWFuX2FydGlzdHdvbWFuX2FydGlzdHBpbG90bWFuX3BpbG90d29tYW5fcGlsb3Rhc3Ryb25hdXRtYW5fYXN0cm9uYXV0d29tYW5fYXN0cm9uYXV0ZmlyZWZpZ2h0ZXJtYW5fZmlyZWZpZ2h0ZXJ3b21hbl9maXJlZmlnaHRlcmNvcHBvbGljZV9vZmZpY2VybWFuX3BvbGljZV9vZmZpY2Vyd29tYW5fcG9saWNlX29mZmljZXJkZXRlY3RpdmVtYW5fZGV0ZWN0aXZld29tYW5fZGV0ZWN0aXZlZ3VhcmRtYW5fZ3VhcmR3b21hbl9ndWFyZG5pbmphY29uc3RydWN0aW9uX3dvcmtlcm1hbl9jb25zdHJ1Y3Rpb25fd29ya2Vyd29tYW5fY29uc3RydWN0aW9uX3dvcmtlcnBlcnNvbl93aXRoX2Nyb3ducm95YWx0eXByaW5jZXByaW5jZXNzcGVyc29uX3dlYXJpbmdfdHVyYmFubWFuX3dlYXJpbmdfdHVyYmFud29tYW5fd2VhcmluZ190dXJiYW5wZXJzb25fd2l0aF9za3VsbGNhcHdvbWFuX3dpdGhfaGVhZHNjYXJmcGVyc29uX2luX3R1eGVkb21hbl9pbl90dXhlZG93b21hbl9pbl90dXhlZG9wZXJzb25fd2l0aF92ZWlsbWFuX3dpdGhfdmVpbHdvbWFuX3dpdGhfdmVpbHByZWduYW50X3dvbWFucHJlZ25hbnRfbWFucHJlZ25hbnRfcGVyc29uYnJlYXN0X2ZlZWRpbmd3b21hbl9mZWVkaW5nX2JhYnltYW5fZmVlZGluZ19iYWJ5cGVyc29uX2ZlZWRpbmdfYmFieWFuZ2Vsc2FudGFtcnNfY2xhdXNteF9jbGF1c3N1cGVyaGVyb21hbl9zdXBlcmhlcm93b21hbl9zdXBlcmhlcm9zdXBlcnZpbGxhaW5tYW5fc3VwZXJ2aWxsYWlud29tYW5fc3VwZXJ2aWxsYWlubWFnZW1hbl9tYWdld29tYW5fbWFnZWZhaXJ5bWFuX2ZhaXJ5d29tYW5fZmFpcnl2YW1waXJlbWFuX3ZhbXBpcmV3b21hbl92YW1waXJlbWVycGVyc29ubWVybWFubWVybWFpZGVsZm1hbl9lbGZ3b21hbl9lbGZnZW5pZW1hbl9nZW5pZXdvbWFuX2dlbmllem9tYmllbWFuX3pvbWJpZXdvbWFuX3pvbWJpZXRyb2xsbWFzc2FnZXBlcnNvbl9nZXR0aW5nX21hc3NhZ2VtYW5fZ2V0dGluZ19tYXNzYWdld29tYW5fZ2V0dGluZ19tYXNzYWdlaGFpcmN1dHBlcnNvbl9nZXR0aW5nX2hhaXJjdXRtYW5fZ2V0dGluZ19oYWlyY3V0d29tYW5fZ2V0dGluZ19oYWlyY3V0cGVyc29uX3dhbGtpbmd3YWxraW5nbWFuX3dhbGtpbmd3b21hbl93YWxraW5ncGVyc29uX3dhbGtpbmdfcmlnaHR3b21hbl93YWxraW5nX3JpZ2h0bWFuX3dhbGtpbmdfcmlnaHRwZXJzb25fc3RhbmRpbmdzdGFuZGluZ21hbl9zdGFuZGluZ3dvbWFuX3N0YW5kaW5na25lZWxpbmdwZXJzb25fa25lZWxpbmdtYW5fa25lZWxpbmd3b21hbl9rbmVlbGluZ3BlcnNvbl9rbmVlbGluZ19yaWdodHdvbWFuX2tuZWVsaW5nX3JpZ2h0bWFuX2tuZWVsaW5nX3JpZ2h0cGVyc29uX3dpdGhfcHJvYmluZ19jYW5lcGVyc29uX3dpdGhfd2hpdGVfY2FuZXBlcnNvbl93aXRoX3doaXRlX2NhbmVfcmlnaHRtYW5fd2l0aF9wcm9iaW5nX2NhbmVtYW5fd2l0aF93aGl0ZV9jYW5lbWFuX3dpdGhfd2hpdGVfY2FuZV9yaWdodHdvbWFuX3dpdGhfcHJvYmluZ19jYW5ld29tYW5fd2l0aF93aGl0ZV9jYW5ld29tYW5fd2l0aF93aGl0ZV9jYW5lX3JpZ2h0cGVyc29uX2luX21vdG9yaXplZF93aGVlbGNoYWlycGVyc29uX2luX21vdG9yaXplZF93aGVlbGNoYWlyX3JpZ2h0bWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlybWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyX3JpZ2h0d29tYW5faW5fbW90b3JpemVkX3doZWVsY2hhaXJ3b21hbl9pbl9tb3Rvcml6ZWRfd2hlZWxjaGFpcl9yaWdodHBlcnNvbl9pbl9tYW51YWxfd2hlZWxjaGFpcnBlcnNvbl9pbl9tYW51YWxfd2hlZWxjaGFpcl9yaWdodG1hbl9pbl9tYW51YWxfd2hlZWxjaGFpcm1hbl9pbl9tYW51YWxfd2hlZWxjaGFpcl9yaWdodHdvbWFuX2luX21hbnVhbF93aGVlbGNoYWlyd29tYW5faW5fbWFudWFsX3doZWVsY2hhaXJfcmlnaHRwZXJzb25fcnVubmluZ3J1bm5pbmdtYW5fcnVubmluZ3dvbWFuX3J1bm5pbmdwZXJzb25fcnVubmluZ19yaWdodHdvbWFuX3J1bm5pbmdfcmlnaHRtYW5fcnVubmluZ19yaWdodGRhbmNlcndvbWFuX2RhbmNpbmdtYW5fZGFuY2luZ2xldml0YXRlbGV2aXRhdGluZ3BlcnNvbl9pbl9zdWl0X2xldml0YXRpbmdkYW5jZXJzcGVvcGxlX3dpdGhfYnVubnlfZWFyc19wYXJ0eWluZ21lbl93aXRoX2J1bm55X2VhcnNfcGFydHlpbmd3b21lbl93aXRoX2J1bm55X2VhcnNfcGFydHlpbmdwZXJzb25faW5fc3RlYW15X3Jvb21tYW5faW5fc3RlYW15X3Jvb213b21hbl9pbl9zdGVhbXlfcm9vbWNsaW1iaW5ncGVyc29uX2NsaW1iaW5nbWFuX2NsaW1iaW5nd29tYW5fY2xpbWJpbmdmZW5jZXJmZW5jaW5ncGVyc29uX2ZlbmNpbmdob3JzZV9yYWNpbmdwZXJzb25fc2tpaW5nc2tpZXJza2lpbmdwZXJzb25fc25vd2JvYXJkaW5nc25vd2JvYXJkZXJzbm93Ym9hcmRpbmdnb2xmZXJnb2xmaW5ncGVyc29uX2dvbGZpbmdtYW5fZ29sZmluZ3dvbWFuX2dvbGZpbmdwZXJzb25fc3VyZmluZ3N1cmZlcnN1cmZpbmdtYW5fc3VyZmluZ3dvbWFuX3N1cmZpbmdwZXJzb25fcm93aW5nX2JvYXRyb3dib2F0bWFuX3Jvd2luZ19ib2F0d29tYW5fcm93aW5nX2JvYXRwZXJzb25fc3dpbW1pbmdzd2ltbWVyc3dpbW1pbmdtYW5fc3dpbW1pbmd3b21hbl9zd2ltbWluZ3BlcnNvbl9ib3VuY2luZ19iYWxsbWFuX2JvdW5jaW5nX2JhbGx3b21hbl9ib3VuY2luZ19iYWxscGVyc29uX2xpZnRpbmdfd2VpZ2h0c3dlaWdodF9saWZ0ZXJ3ZWlnaHRfbGlmdGluZ21hbl9saWZ0aW5nX3dlaWdodHN3b21hbl9saWZ0aW5nX3dlaWdodHNiaWN5Y2xpc3RiaWtpbmdwZXJzb25fYmlraW5nbWFuX2Jpa2luZ3dvbWFuX2Jpa2luZ21vdW50YWluX2JpY3ljbGlzdG1vdW50YWluX2Jpa2luZ3BlcnNvbl9tb3VudGFpbl9iaWtpbmdtYW5fbW91bnRhaW5fYmlraW5nd29tYW5fbW91bnRhaW5fYmlraW5nY2FydHdoZWVsaW5ncGVyc29uX2NhcnR3aGVlbG1hbl9jYXJ0d2hlZWxpbmd3b21hbl9jYXJ0d2hlZWxpbmdwZW9wbGVfd3Jlc3RsaW5nd3Jlc3RsZXJzd3Jlc3RsaW5nbWVuX3dyZXN0bGluZ3dvbWVuX3dyZXN0bGluZ3BlcnNvbl9wbGF5aW5nX3dhdGVyX3BvbG93YXRlcl9wb2xvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sb3dvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sb2hhbmRiYWxscGVyc29uX3BsYXlpbmdfaGFuZGJhbGxtYW5fcGxheWluZ19oYW5kYmFsbHdvbWFuX3BsYXlpbmdfaGFuZGJhbGxqdWdnbGVyanVnZ2xpbmdwZXJzb25fanVnZ2xpbmdtYW5fanVnZ2xpbmd3b21hbl9qdWdnbGluZ3BlcnNvbl9pbl9sb3R1c19wb3NpdGlvbm1hbl9pbl9sb3R1c19wb3NpdGlvbndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uYmF0aHBlcnNvbl90YWtpbmdfYmF0aHBlcnNvbl9pbl9iZWRzbGVlcGluZ19hY2NvbW1vZGF0aW9ucGVvcGxlX2hvbGRpbmdfaGFuZHN0d29fd29tZW5faG9sZGluZ19oYW5kc2NvdXBsZXR3b19tZW5faG9sZGluZ19oYW5kc2NvdXBsZV9raXNzY291cGxla2lzc2tpc3NfbXdraXNzX3dta2lzc19tbWtpc3Nfd3djb3VwbGVfd2l0aF9oZWFydGNvdXBsZV93aXRoX2hlYXJ0X213Y291cGxlX3dpdGhfaGVhcnRfd21jb3VwbGVfd2l0aF9oZWFydF9tbWNvdXBsZV93aXRoX2hlYXJ0X3d3ZmFtaWx5X213YmZhbWlseV9td2dmYW1pbHlfbXdnYmZhbWlseV9td2JiZmFtaWx5X213Z2dmYW1pbHlfbW1iZmFtaWx5X21tZ2ZhbWlseV9tbWdiZmFtaWx5X21tYmJmYW1pbHlfbW1nZ2ZhbWlseV93d2JmYW1pbHlfd3dnZmFtaWx5X3d3Z2JmYW1pbHlfd3diYmZhbWlseV93d2dnZmFtaWx5X21iZmFtaWx5X21iYmZhbWlseV9tZ2ZhbWlseV9tZ2JmYW1pbHlfbWdnZmFtaWx5X3diZmFtaWx5X3diYmZhbWlseV93Z2ZhbWlseV93Z2JmYW1pbHlfd2dnc3BlYWtpbmdfaGVhZGJ1c3RfaW5fc2lsaG91ZXR0ZWJ1c3RzX2luX3NpbGhvdWV0dGVwZW9wbGVfaHVnZ2luZ2ZhbWlseWZhbWlseV9hYWNmYW1pbHlfYWFjY2ZhbWlseV9hY2ZhbWlseV9hY2Nmb290cHJpbnRzdG9uZTF0b25lX2xpZ2h0dG9uZTJ0b25lX21lZGl1bV9saWdodHRvbmUzdG9uZV9tZWRpdW10b25lNHRvbmVfbWVkaXVtX2Rhcmt0b25lNXRvbmVfZGFya3JlZF9oYWlyY3VybHlfaGFpcndoaXRlX2hhaXJub19oYWlybW9ua2V5X2ZhY2Vtb25rZXlnb3JpbGxhb3Jhbmd1dGFuZG9nX2ZhY2Vkb2dndWlkZV9kb2dzZXJ2aWNlX2RvZ3Bvb2RsZXdvbGZ3b2xmX2ZhY2Vmb3hmb3hfZmFjZXJhY2Nvb25jYXRfZmFjZWNhdGJsYWNrX2NhdGxpb25saW9uX2ZhY2V0aWdlcl9mYWNldGlnZXJsZW9wYXJkaG9yc2VfZmFjZW1vb3NlZG9ua2V5aG9yc2VyYWNlaG9yc2V1bmljb3JudW5pY29ybl9mYWNlemVicmFkZWVyYmlzb25jb3dfZmFjZW94d2F0ZXJfYnVmZmFsb2Nvd3BpZ19mYWNlcGlnYm9hcnBpZ19ub3NlcmFtZXdlc2hlZXBnb2F0ZHJvbWVkYXJ5X2NhbWVsY2FtZWxsbGFtYWdpcmFmZmVlbGVwaGFudG1hbW1vdGhyaGlub3JoaW5vY2Vyb3NoaXBwb21vdXNlX2ZhY2Vtb3VzZXJhdGhhbXN0ZXJoYW1zdGVyX2ZhY2VyYWJiaXRfZmFjZXJhYmJpdGNoaXBtdW5rYmVhdmVyaGVkZ2Vob2diYXRiZWFyYmVhcl9mYWNlcG9sYXJfYmVhcnBvbGFyX2JlYXJfZmFjZWtvYWxha29hbGFfZmFjZXBhbmRhcGFuZGFfZmFjZXNsb3Rob3R0ZXJza3Vua2thbmdhcm9vYmFkZ2VycGF3X3ByaW50c3R1cmtleWNoaWNrZW5jaGlja2VuX2ZhY2Vyb29zdGVyaGF0Y2hpbmdfY2hpY2tiYWJ5X2NoaWNraGF0Y2hlZF9jaGlja2JpcmRiaXJkX2ZhY2VwZW5ndWlucGVuZ3Vpbl9mYWNlZG92ZWVhZ2xlZHVja3N3YW5vd2xkb2RvZmVhdGhlcmZsYW1pbmdvcGVhY29ja3BhcnJvdHdpbmdibGFja19iaXJkZ29vc2VwaG9lbml4ZnJvZ2Zyb2dfZmFjZWNyb2NvZGlsZXR1cnRsZWxpemFyZHNuYWtlZHJhZ29uX2ZhY2VkcmFnb25zYXVyb3BvZHQtcmV4dHJleHNwb3V0aW5nX3doYWxld2hhbGVkb2xwaGluc2VhbGZpc2h0cm9waWNhbF9maXNoYmxvd2Zpc2hzaGFya29jdG9wdXNzaGVsbGNvcmFsamVsbHlmaXNoc25haWxidXR0ZXJmbHlidWdhbnRiZWViZWV0bGVsYWR5X2JlZXRsZWNyaWNrZXRjb2Nrcm9hY2hzcGlkZXJzcGlkZXJfd2Vic2NvcnBpb25tb3NxdWl0b2ZseXdvcm1taWNyb2JlYm91cXVldGNoZXJyeV9ibG9zc29td2hpdGVfZmxvd2VybG90dXNyb3NldHRlcm9zZXdpbHRlZF9mbG93ZXJoaWJpc2N1c3N1bmZsb3dlcmJsb3Nzb210dWxpcGh5YWNpbnRoc2VlZGxpbmdwb3R0ZWRfcGxhbnRldmVyZ3JlZW5fdHJlZWRlY2lkdW91c190cmVlcGFsbV90cmVlY2FjdHVzZWFyX29mX3JpY2VzaGVhZl9vZl9yaWNlaGVyYnNoYW1yb2NrZm91cl9sZWFmX2Nsb3Zlcm1hcGxlX2xlYWZmYWxsZW5fbGVhZmxlYXZlc2VtcHR5X25lc3RuZXN0bmVzdF93aXRoX2VnZ3NtdXNocm9vbWdyYXBlc21lbG9ud2F0ZXJtZWxvbm9yYW5nZXRhbmdlcmluZWxlbW9ubGltZWJhbmFuYXBpbmVhcHBsZW1hbmdvYXBwbGVyZWRfYXBwbGVncmVlbl9hcHBsZXBlYXJwZWFjaGNoZXJyaWVzc3RyYXdiZXJyeWJsdWViZXJyaWVza2l3aXRvbWF0b29saXZlY29jb251dGF2b2NhZG9lZ2dwbGFudHBvdGF0b2NhcnJvdGNvcm5lYXJfb2ZfY29ybmhvdF9wZXBwZXJiZWxsX3BlcHBlcmN1Y3VtYmVybGVhZnlfZ3JlZW5icm9jY29saWdhcmxpY29uaW9ucGVhbnV0c2JlYW5zY2hlc3RudXRnaW5nZXJwZWFicm93bl9tdXNocm9vbWJyZWFkY3JvaXNzYW50YmFndWV0dGVfYnJlYWRmbGF0YnJlYWRwcmV0emVsYmFnZWxwYW5jYWtlc3dhZmZsZWNoZWVzZW1lYXRfb25fYm9uZXBvdWx0cnlfbGVnY3V0X29mX21lYXRiYWNvbmhhbWJ1cmdlcmZyZW5jaF9mcmllc2ZyaWVzcGl6emFob3Rkb2dzYW5kd2ljaHRhY29idXJyaXRvdGFtYWxlc3R1ZmZlZF9mbGF0YnJlYWRmYWxhZmVsZWdnY29va2luZ2ZyaWVkX2VnZ3NoYWxsb3dfcGFuX29mX2Zvb2Rwb3Rfb2ZfZm9vZHN0ZXdmb25kdWVib3dsX3dpdGhfc3Bvb25ncmVlbl9zYWxhZHNhbGFkcG9wY29ybmJ1dHRlcnNhbHRjYW5uZWRfZm9vZGJlbnRvYmVudG9fYm94cmljZV9jcmFja2VycmljZV9iYWxsY29va2VkX3JpY2VyaWNlY3VycnljdXJyeV9yaWNlcmFtZW5zdGVhbWluZ19ib3dsc3BhZ2hldHRpc3dlZXRfcG90YXRvb2RlbnN1c2hpZnJpZWRfc2hyaW1wZmlzaF9jYWtlbW9vbl9jYWtlZGFuZ29kdW1wbGluZ2ZvcnR1bmVfY29va2lldGFrZW91dF9ib3hjcmFibG9ic3RlcnNocmltcHNxdWlkb3lzdGVyaWNlY3JlYW1zb2Z0X3NlcnZlc2hhdmVkX2ljZWljZV9jcmVhbWRvdWdobnV0Y29va2llYmlydGhkYXliaXJ0aGRheV9jYWtlY2FrZXNob3J0Y2FrZWN1cGNha2VwaWVjaG9jb2xhdGVfYmFyY2FuZHlsb2xsaXBvcGN1c3RhcmRob25leV9wb3RiYWJ5X2JvdHRsZWdsYXNzX29mX21pbGttaWxrY29mZmVldGVhcG90dGVhc2FrZWNoYW1wYWduZXdpbmVfZ2xhc3Njb2NrdGFpbHRyb3BpY2FsX2RyaW5rYmVlcmJlZXJzY2xpbmtpbmdfZ2xhc3Nlc3R1bWJsZXJfZ2xhc3N3aGlza3lwb3VycG91cmluZ19saXF1aWRjdXBfd2l0aF9zdHJhd2JvYmFfZHJpbmtidWJibGVfdGVhYmV2ZXJhZ2VfYm94anVpY2VfYm94bWF0ZWljZWljZV9jdWJlY2hvcHN0aWNrc2Zvcmtfa25pZmVfcGxhdGVmb3JrX2FuZF9rbmlmZXNwb29ua25pZmVqYXJhbXBob3JhZWFydGhfYWZyaWNhZWFydGhfZXVyb3BlZWFydGhfYW1lcmljYXNlYXJ0aF9hc2lhZ2xvYmVfd2l0aF9tZXJpZGlhbnN3b3JsZF9tYXBqYXBhbl9tYXBjb21wYXNzbW91bnRhaW5fc25vd21vdW50YWludm9sY2Fub21vdW50X2Z1amljYW1waW5nYmVhY2hiZWFjaF93aXRoX3VtYnJlbGxhZGVzZXJ0ZGVzZXJ0X2lzbGFuZGlzbGFuZG5hdGlvbmFsX3BhcmtzdGFkaXVtY2xhc3NpY2FsX2J1aWxkaW5nYnVpbGRpbmdfY29uc3RydWN0aW9uY29uc3RydWN0aW9uX3NpdGVicmlja3Nyb2Nrd29vZGh1dGhvbWVzaG91c2VzZGVyZWxpY3RfaG91c2Vob3VzZV9hYmFuZG9uZWRob3VzZWhvdXNlX3dpdGhfZ2FyZGVub2ZmaWNlcG9zdF9vZmZpY2VldXJvcGVhbl9wb3N0X29mZmljZWhvc3BpdGFsYmFua2hvdGVsbG92ZV9ob3RlbGNvbnZlbmllbmNlX3N0b3Jlc2Nob29sZGVwYXJ0bWVudF9zdG9yZWZhY3RvcnlqYXBhbmVzZV9jYXN0bGVjYXN0bGVldXJvcGVhbl9jYXN0bGV3ZWRkaW5ndG9reW9fdG93ZXJzdGF0dWVfb2ZfbGliZXJ0eWNodXJjaG1vc3F1ZWhpbmR1X3RlbXBsZXN5bmFnb2d1ZXNoaW50b19zaHJpbmVrYWFiYWZvdW50YWludGVudGZvZ2d5bmlnaHRfd2l0aF9zdGFyc2NpdHlzY2FwZXN1bnJpc2Vfb3Zlcl9tb3VudGFpbnNzdW5yaXNlY2l0eV9kdXNrY2l0eV9zdW5yaXNlY2l0eV9zdW5zZXRicmlkZ2VfYXRfbmlnaHRob3RzcHJpbmdzY2Fyb3VzZWxfaG9yc2VwbGF5Z3JvdW5kX3NsaWRlc2xpZGVmZXJyaXNfd2hlZWxyb2xsZXJfY29hc3RlcmJhcmJlcmJhcmJlcl9wb2xlY2lyY3VzX3RlbnRzdGVhbV9sb2NvbW90aXZlcmFpbHdheV9jYXJidWxsZXR0cmFpbl9zaWRlYnVsbGV0dHJhaW5fZnJvbnR0cmFpbm1ldHJvbGlnaHRfcmFpbHN0YXRpb250cmFtbW9ub3JhaWxtb3VudGFpbl9yYWlsd2F5dHJhbV9jYXJidXNvbmNvbWluZ19idXN0cm9sbGV5YnVzbWluaWJ1c2FtYnVsYW5jZWZpcmVfZW5naW5lcG9saWNlX2Nhcm9uY29taW5nX3BvbGljZV9jYXJ0YXhpb25jb21pbmdfdGF4aWNhcnJlZF9jYXJvbmNvbWluZ19hdXRvbW9iaWxlYmx1ZV9jYXJzdXZwaWNrdXBfdHJ1Y2tkZWxpdmVyeV90cnVja3RydWNrYXJ0aWN1bGF0ZWRfbG9ycnl0cmFjdG9ycmFjaW5nX2Nhcm1vdG9yY3ljbGVtb3Rvcl9zY29vdGVybWFudWFsX3doZWVsY2hhaXJtb3Rvcml6ZWRfd2hlZWxjaGFpcmF1dG9fcmlja3NoYXdiaWN5Y2xlYmlrZXNjb290ZXJza2F0ZWJvYXJkcm9sbGVyX3NrYXRlYnVzc3RvcG1vdG9yd2F5cmFpbHdheV90cmFja29pbF9kcnVtZnVlbHB1bXB3aGVlbHJvdGF0aW5nX2xpZ2h0dHJhZmZpY19saWdodHZlcnRpY2FsX3RyYWZmaWNfbGlnaHRvY3RhZ29uYWxfc2lnbnN0b3Bfc2lnbmNvbnN0cnVjdGlvbmFuY2hvcmxpZmVidW95cmluZ19idW95c2FpbGJvYXRjYW5vZXNwZWVkYm9hdGNydWlzZV9zaGlwcGFzc2VuZ2VyX3NoaXBmZXJyeW1vdG9yYm9hdHNoaXBhaXJwbGFuZXNtYWxsX2FpcnBsYW5lYWlycGxhbmVfZGVwYXJ0dXJlYWlycGxhbmVfYXJyaXZpbmdwYXJhY2h1dGVzZWF0aGVsaWNvcHRlcnN1c3BlbnNpb25fcmFpbHdheW1vdW50YWluX2NhYmxld2F5YWVyaWFsX3RyYW13YXlzYXRlbGxpdGVyb2NrZXRmbHlpbmdfc2F1Y2VyYmVsbGhvcGx1Z2dhZ2Vob3VyZ2xhc3Nob3VyZ2xhc3NfZmxvd2luZ19zYW5kd2F0Y2hhbGFybV9jbG9ja3N0b3B3YXRjaHRpbWVyX2Nsb2NrY2xvY2tjbG9jazEyY2xvY2sxMjMwY2xvY2sxY2xvY2sxMzBjbG9jazJjbG9jazIzMGNsb2NrM2Nsb2NrMzMwY2xvY2s0Y2xvY2s0MzBjbG9jazVjbG9jazUzMGNsb2NrNmNsb2NrNjMwY2xvY2s3Y2xvY2s3MzBjbG9jazhjbG9jazgzMGNsb2NrOWNsb2NrOTMwY2xvY2sxMGNsb2NrMTAzMGNsb2NrMTFjbG9jazExMzBuZXdfbW9vbndheGluZ19jcmVzY2VudF9tb29uZmlyc3RfcXVhcnRlcl9tb29ud2F4aW5nX2dpYmJvdXNfbW9vbmZ1bGxfbW9vbndhbmluZ19naWJib3VzX21vb25sYXN0X3F1YXJ0ZXJfbW9vbndhbmluZ19jcmVzY2VudF9tb29uY3Jlc2NlbnRfbW9vbm5ld19tb29uX3dpdGhfZmFjZWZpcnN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2VsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2V0aGVybW9tZXRlcnN1bmZ1bGxfbW9vbl93aXRoX2ZhY2VzdW5fd2l0aF9mYWNlcmluZ2VkX3BsYW5ldHNhdHVybnN0YXJnbG93aW5nX3N0YXJzdGFyMnNob290aW5nX3N0YXJzdGFyc21pbGt5X3dheWNsb3VkcGFydGx5X3N1bm55c3VuX2JlaGluZF9jbG91ZHN0b3JteXRodW5kZXJfY2xvdWRfYW5kX3JhaW5zdW5fYmVoaW5kX3NtYWxsX2Nsb3Vkc3VubnljbG91ZHlzdW5fYmVoaW5kX2xhcmdlX2Nsb3Vkc3VuX2FuZF9yYWluc3VuX2JlaGluZF9yYWluX2Nsb3VkY2xvdWRfd2l0aF9yYWlucmFpbnljbG91ZF93aXRoX3Nub3dzbm93eWNsb3VkX3dpdGhfbGlnaHRuaW5nbGlnaHRuaW5ndG9ybmFkb2ZvZ3dpbmRfYmxvd2luZ19mYWNlY3ljbG9uZXJhaW5ib3djbG9zZWRfdW1icmVsbGF1bWJyZWxsYXVtYnJlbGxhX3dpdGhfcmFpbmJlYWNoX3VtYnJlbGxhdW1icmVsbGFfb25fZ3JvdW5kaGlnaF92b2x0YWdlemFwc25vd2ZsYWtlc25vd21hbjJzbm93bWFuY29tZXRmaXJlZHJvcGxldG9jZWFud2F0ZXJfd2F2ZWphY2tfb19sYW50ZXJuY2hyaXN0bWFzX3RyZWVmaXJld29ya3NzcGFya2xlcmZpcmVjcmFja2Vyc3BhcmtsZXNiYWxsb29ucGFydHlwYXJ0eV9wb3BwZXJ0YWRhY29uZmV0dGlfYmFsbHRhbmFiYXRhX3RyZWViYW1ib29kb2xsc2NhcnBfc3RyZWFtZXJmbGFnc3dpbmRfY2hpbWVtb29uX2NlcmVtb255cmljZV9zY2VuZXJlZF9lbnZlbG9wZXJpYmJvbmdpZnRyZW1pbmRlcl9yaWJib25hZG1pc3Npb25fdGlja2V0c3RpY2tldHN0aWNrZXRtaWxpdGFyeV9tZWRhbHRyb3BoeXNwb3J0c19tZWRhbDFzdGZpcnN0X3BsYWNlX21lZGFsMm5kc2Vjb25kX3BsYWNlX21lZGFsM3JkdGhpcmRfcGxhY2VfbWVkYWxzb2NjZXJiYXNlYmFsbHNvZnRiYWxsYmFza2V0YmFsbHZvbGxleWJhbGxmb290YmFsbHJ1Z2J5X2Zvb3RiYWxsdGVubmlzZmx5aW5nX2Rpc2Nib3dsaW5nY3JpY2tldF9nYW1lZmllbGRfaG9ja2V5aG9ja2V5bGFjcm9zc2VwaW5nX3BvbmdiYWRtaW50b25ib3hpbmdfZ2xvdmVtYXJ0aWFsX2FydHNfdW5pZm9ybWdvYWxfbmV0Z29sZmljZV9za2F0ZWZpc2hpbmdfcG9sZWZpc2hpbmdfcG9sZV9hbmRfZmlzaGRpdmluZ19tYXNrcnVubmluZ19zaGlydHJ1bm5pbmdfc2hpcnRfd2l0aF9zYXNoc2tpc2xlZGN1cmxpbmdfc3RvbmVidWxsc2V5ZWRhcnRkaXJlY3RfaGl0eW9feW9raXRlZ3VucGlzdG9sOGJhbGxiaWxsaWFyZHNjcnlzdGFsX2JhbGxtYWdpY193YW5kY29udHJvbGxlcnZpZGVvX2dhbWVqb3lzdGlja3Nsb3RfbWFjaGluZWdhbWVfZGllamlnc2F3cHV6emxlX3BpZWNldGVkZHlfYmVhcnBpbmF0YWRpc2NvZGlzY29fYmFsbG1pcnJvcl9iYWxsbmVzdGluZ19kb2xsc3NwYWRlc2hlYXJ0c2RpYW1vbmRzY2x1YnNjaGVzc19wYXduYmxhY2tfam9rZXJtYWhqb25nZmxvd2VyX3BsYXlpbmdfY2FyZHNwZXJmb3JtaW5nX2FydHNmcmFtZV93aXRoX3BpY3R1cmVmcmFtZWRfcGljdHVyZWFydHBhbGV0dGV0aHJlYWRzZXdpbmdfbmVlZGxleWFybmtub3RleWVnbGFzc2VzZ2xhc3Nlc3N1bmdsYXNzZXNnb2dnbGVzbGFiX2NvYXRzYWZldHlfdmVzdG5lY2t0aWVzaGlydGplYW5zc2NhcmZnbG92ZXNjb2F0c29ja3NkcmVzc2tpbW9ub3NhcmlvbmVfcGllY2Vfc3dpbXN1aXRicmllZnNzaG9ydHNiaWtpbml3b21hbnNfY2xvdGhlc2ZvbGRpbmdfZmFucHVyc2VoYW5kYmFnY2x1dGNoX2JhZ3BvdWNoc2hvcHBpbmdfYmFnc2JhY2twYWNrc2Nob29sX3NhdGNoZWx0aG9uZ19zYW5kYWxtYW5zX3Nob2VhdGhsZXRpY19zaG9lc25lYWtlcmhpa2luZ19ib290ZmxhdF9zaG9ld29tYW5zX2ZsYXRfc2hvZWhpZ2hfaGVlbHNhbmRhbGJhbGxldF9zaG9lc2Jvb3RoYWlyX3BpY2tjcm93bndvbWFuc19oYXR0b3BfaGF0dG9waGF0Z3JhZHVhdGlvbl9jYXBtb3J0YXJfYm9hcmRiaWxsZWRfY2FwbWlsaXRhcnlfaGVsbWV0aGVsbWV0X3dpdGhfY3Jvc3NyZXNjdWVfd29ya2VyX2hlbG1ldHByYXllcl9iZWFkc2xpcHN0aWNrcmluZ2dlbW11dGVub19zb3VuZGxvd192b2x1bWVxdWlldF9zb3VuZHNwZWFrZXJtZWRpdW1fdm9sdW1uZXNvdW5kaGlnaF92b2x1bWVsb3VkX3NvdW5kbG91ZHNwZWFrZXJtZWdhbWVnYXBob25lcG9zdGFsX2hvcm5iZWxsbm9fYmVsbG11c2ljYWxfc2NvcmVtdXNpY2FsX25vdGVtdXNpY2FsX25vdGVzbm90ZXNzdHVkaW9fbWljcm9waG9uZWxldmVsX3NsaWRlcmNvbnRyb2xfa25vYnNtaWNyb3Bob25laGVhZHBob25lc3JhZGlvc2F4b3Bob25lYWNjb3JkaW9uZ3VpdGFybXVzaWNhbF9rZXlib2FyZHRydW1wZXR2aW9saW5iYW5qb2RydW1sb25nX2RydW1tYXJhY2FzZmx1dGVhbmRyb2lkaXBob25lbW9iaWxlX3Bob25lY2FsbGluZ21vYmlsZV9waG9uZV9hcnJvd3RlbGVwaG9uZXRlbGVwaG9uZV9yZWNlaXZlcnBhZ2VyZmF4ZmF4X21hY2hpbmViYXR0ZXJ5bG93X2JhdHRlcnllbGVjdHJpY19wbHVnbGFwdG9wY29tcHV0ZXJkZXNrdG9wX2NvbXB1dGVycHJpbnRlcmtleWJvYXJkY29tcHV0ZXJfbW91c2V0cmFja2JhbGxjb21wdXRlcl9kaXNrbWluaWRpc2NmbG9wcHlfZGlza2Nkb3B0aWNhbF9kaXNrZHZkYWJhY3VzbW92aWVfY2FtZXJhZmlsbV9mcmFtZXNmaWxtX3Byb2plY3RvcmNsYXBwZXJ0dmNhbWVyYWNhbWVyYV93aXRoX2ZsYXNodmlkZW9fY2FtZXJhdmhzdmlkZW9jYXNzZXR0ZW1hZ21hZ19yaWdodGNhbmRsZWJ1bGJsaWdodF9idWxiZmxhc2hsaWdodGl6YWtheWFfbGFudGVybnJlZF9wYXBlcl9sYW50ZXJuZGl5YV9sYW1wbm90ZWJvb2tfd2l0aF9kZWNvcmF0aXZlX2NvdmVyY2xvc2VkX2Jvb2tib29rb3Blbl9ib29rZ3JlZW5fYm9va2JsdWVfYm9va29yYW5nZV9ib29rYm9va3Nub3RlYm9va2xlZGdlcnBhZ2Vfd2l0aF9jdXJsc2Nyb2xscGFnZV9mYWNpbmdfdXBuZXdzcGFwZXJyb2xsZWRfdXBfbmV3c3BhcGVyYm9va21hcmtfdGFic2Jvb2ttYXJrbGFiZWxtb25leWJhZ2NvaW55ZW5kb2xsYXJldXJvcG91bmRtb25leV93aXRoX3dpbmdzY3JlZGl0X2NhcmRyZWNlaXB0Y2hhcnRlbnZlbG9wZWUtbWFpbGVtYWlsaW5jb21pbmdfZW52ZWxvcGVlbnZlbG9wZV93aXRoX2Fycm93b3V0Ym94X3RyYXlpbmJveF90cmF5cGFja2FnZW1haWxib3htYWlsYm94X2Nsb3NlZG1haWxib3hfd2l0aF9tYWlsbWFpbGJveF93aXRoX25vX21haWxwb3N0Ym94YmFsbG90X2JveHBlbmNpbGJsYWNrX25pYmZvdW50YWluX3BlbnBlbnBhaW50YnJ1c2hjcmF5b25tZW1vYnJpZWZjYXNlZmlsZV9mb2xkZXJvcGVuX2ZpbGVfZm9sZGVyY2FyZF9pbmRleF9kaXZpZGVyc2RhdGVjYWxlbmRhcm5vdGVwYWRfc3BpcmFsY2FsZW5kYXJfc3BpcmFsY2FyZF9pbmRleGNoYXJ0X2luY3JlYXNpbmdjaGFydF93aXRoX3Vwd2FyZHNfdHJlbmRjaGFydF9kZWNyZWFzaW5nY2hhcnRfd2l0aF9kb3dud2FyZHNfdHJlbmRiYXJfY2hhcnRjbGlwYm9hcmRwdXNocGlucm91bmRfcHVzaHBpbnBhcGVyY2xpcHBhcGVyY2xpcHNzdHJhaWdodF9ydWxlcnRyaWFuZ3VsYXJfcnVsZXJzY2lzc29yc2NhcmRfZmlsZV9ib3hmaWxlX2NhYmluZXR0cmFzaGNhbndhc3RlYmFza2V0bG9ja2xvY2tlZHVubG9ja3VubG9ja2VkbG9ja193aXRoX2lua19wZW5sb2NrZWRfd2l0aF9wZW5jbG9zZWRfbG9ja193aXRoX2tleWxvY2tlZF93aXRoX2tleWtleW9sZF9rZXloYW1tZXJheGVwaWNraGFtbWVyX2FuZF9waWNraGFtbWVyX2FuZF93cmVuY2hkYWdnZXJjcm9zc2VkX3N3b3Jkc2JvbWJib29tZXJhbmdib3dfYW5kX2Fycm93c2hpZWxkY2FycGVudHJ5X3Nhd3dyZW5jaHNjcmV3ZHJpdmVybnV0X2FuZF9ib2x0Z2VhcmNsYW1wY29tcHJlc3Npb25zY2FsZXNwcm9iaW5nX2NhbmV3aGl0ZV9jYW5lbGlua2Jyb2tlbl9jaGFpbmNoYWluc2hvb2t0b29sYm94bWFnbmV0bGFkZGVyYWxlbWJpY3Rlc3RfdHViZXBldHJpX2Rpc2hkbmFkb3VibGVfaGVsaXhtaWNyb3Njb3BldGVsZXNjb3Blc2F0ZWxsaXRlX2FudGVubmFzeXJpbmdlZHJvcF9vZl9ibG9vZHBpbGxhZGhlc2l2ZV9iYW5kYWdlYmFuZGFpZGNydXRjaHN0ZXRob3Njb3BleC1yYXl4cmF5ZG9vcmVsZXZhdG9ybWlycm9yd2luZG93YmVkY291Y2hfYW5kX2xhbXBjaGFpcnRvaWxldHBsdW5nZXJzaG93ZXJiYXRodHVibW91c2VfdHJhcHJhem9ybG90aW9uX2JvdHRsZXNhZmV0eV9waW5icm9vbWJhc2tldHJvbGxfb2ZfcGFwZXJ0b2lsZXRfcGFwZXJidWNrZXRzb2FwYnViYmxlc3Rvb3RoYnJ1c2hzcG9uZ2VmaXJlX2V4dGluZ3Vpc2hlcnNob3BwaW5nX2NhcnRjaWdhcmV0dGVzbW9raW5nY29mZmluaGVhZHN0b25lZnVuZXJhbF91cm5uYXphcl9hbXVsZXRoYW1zYW1vYWltb3lhaXBsYWNhcmRpZF9jYXJkYXRtbGl0dGVyX2JpbnB1dF9saXR0ZXJfaW5faXRzX3BsYWNlcG90YWJsZV93YXRlcmhhbmRpY2FwcGVkd2hlZWxjaGFpcm1lbnN3b21lbnNiYXRocm9vbXJlc3Ryb29tYmFieV9zeW1ib2x3YXRlcl9jbG9zZXR3Y3Bhc3Nwb3J0X2NvbnRyb2xjdXN0b21zYmFnZ2FnZV9jbGFpbWxlZnRfbHVnZ2FnZXdhcm5pbmdjaGlsZHJlbl9jcm9zc2luZ25vX2VudHJ5bm9fZW50cnlfc2lnbm5vX2JpY3ljbGVzbm9fc21va2luZ2RvX25vdF9saXR0ZXJub19saXR0ZXJpbmdub24tcG90YWJsZV93YXRlcm5vX3BlZGVzdHJpYW5zbm9fbW9iaWxlX3Bob25lc25vX29uZV91bmRlcl8xOHVuZGVyYWdlcmFkaW9hY3RpdmViaW9oYXphcmRhcnJvd191cGFycm93X3VwcGVyX3JpZ2h0YXJyb3dfcmlnaHRhcnJvd19sb3dlcl9yaWdodGFycm93X2Rvd25hcnJvd19sb3dlcl9sZWZ0YXJyb3dfbGVmdGFycm93X3VwcGVyX2xlZnRhcnJvd191cF9kb3dubGVmdF9yaWdodF9hcnJvd2Fycm93X2xlZnRfaG9va2xlZnR3YXJkc19hcnJvd193aXRoX2hvb2thcnJvd19yaWdodF9ob29rcmlnaHR3YXJkc19hcnJvd193aXRoX2hvb2thcnJvd19oZWFkaW5nX3VwYXJyb3dfaGVhZGluZ19kb3duYXJyb3dzX2Nsb2Nrd2lzZWNsb2Nrd2lzZWFycm93c19jb3VudGVyY2xvY2t3aXNlY291bnRlcmNsb2Nrd2lzZWJhY2tlbmRvbnNvb250b3BwbGFjZV9vZl93b3JzaGlwYXRvbWF0b21fc3ltYm9sb21zdGFyX29mX2Rhdmlkd2hlZWxfb2ZfZGhhcm1heWluX3lhbmdsYXRpbl9jcm9zc29ydGhvZG94X2Nyb3Nzc3Rhcl9hbmRfY3Jlc2NlbnRwZWFjZXBlYWNlX3N5bWJvbG1lbm9yYWhzaXhfcG9pbnRlZF9zdGFya2hhbmRhYXJpZXN0YXVydXNnZW1pbmljYW5jZXJsZW92aXJnb2xpYnJhc2NvcnBpdXNzYWdpdHRhcml1c2NhcHJpY29ybmFxdWFyaXVzcGlzY2Vzb3BoaXVjaHVzc2h1ZmZsZXR3aXN0ZWRfcmlnaHR3YXJkc19hcnJvd3NyZXBlYXRyZXBlYXRfb25lYXJyb3dfZm9yd2FyZHBsYXlmYXN0X2ZvcndhcmRuZXh0X3RyYWNrcGxheV9wYXVzZWFycm93X2JhY2t3YXJkcmV2ZXJzZWZhc3RfcmV2ZXJzZXJld2luZHByZXZpb3VzX3RyYWNrYXJyb3dfdXBfc21hbGx1cGFycm93X2RvdWJsZV91cGZhc3RfdXBhcnJvd19kb3duX3NtYWxsZG93bmFycm93X2RvdWJsZV9kb3duZmFzdF9kb3ducGF1c2VzdG9wcmVjb3JkZWplY3RjaW5lbWFkaW1fYnV0dG9ubG93X2JyaWdodG5lc3NicmlnaHRfYnV0dG9uaGlnaF9icmlnaHRuZXNzYW50ZW5uYV9iYXJzc2lnbmFsX3N0cmVuZ3Rod2lyZWxlc3N2aWJyYXRpb25fbW9kZW1vYmlsZV9waG9uZV9vZmZmZW1hbGVmZW1hbGVfc2lnbm1hbGVtYWxlX3NpZ250cmFuc2dlbmRlcl9zeW1ib2xtdWx0aXBsaWNhdGlvbm11bHRpcGx5cGx1c21pbnVzZGl2aWRlZGl2aXNpb25oZWF2eV9lcXVhbHNfc2lnbmluZmluaXR5YmFuZ2Jhbmdkb3VibGVfZXhjbGFtYXRpb25leGNsYW1hdGlvbl9xdWVzdGlvbmludGVycm9iYW5ncXVlc3Rpb253aGl0ZV9xdWVzdGlvbndoaXRlX2V4Y2xhbWF0aW9uZXhjbGFtYXRpb253YXZ5X2Rhc2hjdXJyZW5jeV9leGNoYW5nZWhlYXZ5X2RvbGxhcl9zaWdubWVkaWNhbG1lZGljYWxfc3ltYm9scmVjeWNsZXJlY3ljbGluZ19zeW1ib2xmbGV1ci1kZS1saXN0cmlkZW50bmFtZV9iYWRnZWJlZ2lubmVyaG9sbG93X3JlZF9jaXJjbGVyZWRfb2NoZWNrX21hcmtfYnV0dG9ud2hpdGVfY2hlY2tfbWFya2JhbGxvdF9ib3hfd2l0aF9jaGVja2NoZWNrX21hcmtoZWF2eV9jaGVja19tYXJrY3Jvc3NfbWFya3hjcm9zc19tYXJrX2J1dHRvbm5lZ2F0aXZlX3NxdWFyZWRfY3Jvc3NfbWFya2N1cmx5X2xvb3Bkb3VibGVfY3VybHlfbG9vcGxvb3BwYXJ0X2FsdGVybmF0aW9uX21hcmtlaWdodF9zcG9rZWRfYXN0ZXJpc2tlaWdodF9wb2ludGVkX2JsYWNrX3N0YXJzcGFya2xlY29weXJpZ2h0cmVnaXN0ZXJlZHRtdHJhZGVfbWFya2hhc2hudW1iZXJfc2lnbmFzdGVyaXNremVyb29uZXR3b3RocmVlZm91cmZpdmVzaXhzZXZlbmVpZ2h0bmluZXRlbmNhcGl0YWxfYWJjZGFiY2QxMjM0c3ltYm9sc2FiY2FhX2Jsb29kYWJhYl9ibG9vZGJiX2Jsb29kY2xjb29sZnJlZWluZm9pbmZvcm1hdGlvbl9zb3VyY2VpZG1uZXduZ29vX2Jsb29kb2twYXJraW5nc29zdXAydnNqYV9oZXJla29rb2phX3NlcnZpY2VfY2hhcmdlamFfbW9udGhseV9hbW91bnRqYV9ub3RfZnJlZV9vZl9jYXJnZWphX3Jlc2VydmVkaWRlb2dyYXBoX2FkdmFudGFnZWphX2JhcmdhaW5qYV9kaXNjb3VudGphX2ZyZWVfb2ZfY2hhcmdlamFfcHJvaGliaXRlZGFjY2VwdGphX2FjY2VwdGFibGVqYV9hcHBsaWNhdGlvbmphX3Bhc3NpbmdfZ3JhZGVqYV92YWNhbmN5Y29uZ3JhdHVsYXRpb25zamFfY29uZ3JhdHVsYXRpb25zamFfc2VjcmV0c2VjcmV0amFfb3Blbl9mb3JfYnVzaW5lc3NqYV9ub192YWNhbmN5cmVkX2NpcmNsZW9yYW5nZV9jaXJjbGV5ZWxsb3dfY2lyY2xlZ3JlZW5fY2lyY2xlYmx1ZV9jaXJjbGVwdXJwbGVfY2lyY2xlYnJvd25fY2lyY2xlYmxhY2tfY2lyY2xld2hpdGVfY2lyY2xlcmVkX3NxdWFyZW9yYW5nZV9zcXVhcmV5ZWxsb3dfc3F1YXJlZ3JlZW5fc3F1YXJlYmx1ZV9zcXVhcmVwdXJwbGVfc3F1YXJlYnJvd25fc3F1YXJlYmxhY2tfbGFyZ2Vfc3F1YXJld2hpdGVfbGFyZ2Vfc3F1YXJlYmxhY2tfbWVkaXVtX3NxdWFyZXdoaXRlX21lZGl1bV9zcXVhcmVibGFja19tZWRpdW1fc21hbGxfc3F1YXJld2hpdGVfbWVkaXVtX3NtYWxsX3NxdWFyZWJsYWNrX3NtYWxsX3NxdWFyZXdoaXRlX3NtYWxsX3NxdWFyZWxhcmdlX29yYW5nZV9kaWFtb25kbGFyZ2VfYmx1ZV9kaWFtb25kc21hbGxfb3JhbmdlX2RpYW1vbmRzbWFsbF9ibHVlX2RpYW1vbmRzbWFsbF9yZWRfdHJpYW5nbGVzbWFsbF9yZWRfdHJpYW5nbGVfZG93bmRpYW1vbmRfc2hhcGVfd2l0aF9hX2RvdF9pbnNpZGVkaWFtb25kX3dpdGhfYV9kb3RyYWRpb19idXR0b253aGl0ZV9zcXVhcmVfYnV0dG9uYmxhY2tfc3F1YXJlX2J1dHRvbmNoZWNrZXJlZF9mbGFndHJpYW5ndWxhcl9mbGFndHJpYW5ndWxhcl9mbGFnX29uX3Bvc3Rjcm9zc2VkX2ZsYWdzYmxhY2tfZmxhZ3doaXRlX2ZsYWdyYWluYm93X2ZsYWd0cmFuc2dlbmRlcl9mbGFnam9sbHlfcm9nZXJwaXJhdGVfZmxhZ2FzY2Vuc2lvbl9pc2xhbmRmbGFnX2FjYW5kb3JyYWZsYWdfYWRmbGFnX2FldW5pdGVkX2FyYWJfZW1pcmF0ZXNhZmdoYW5pc3RhbmZsYWdfYWZhbnRpZ3VhX2JhcmJ1ZGFmbGFnX2FnYW5ndWlsbGFmbGFnX2FpYWxiYW5pYWZsYWdfYWxhcm1lbmlhZmxhZ19hbWFuZ29sYWZsYWdfYW9hbnRhcmN0aWNhZmxhZ19hcWFyZ2VudGluYWZsYWdfYXJhbWVyaWNhbl9zYW1vYWZsYWdfYXNhdXN0cmlhZmxhZ19hdGF1c3RyYWxpYWZsYWdfYXVhcnViYWZsYWdfYXdhbGFuZF9pc2xhbmRzZmxhZ19heGF6ZXJiYWlqYW5mbGFnX2F6Ym9zbmlhX2hlcnplZ292aW5hZmxhZ19iYWJhcmJhZG9zZmxhZ19iYmJhbmdsYWRlc2hmbGFnX2JkYmVsZ2l1bWZsYWdfYmVidXJraW5hX2Zhc29mbGFnX2JmYnVsZ2FyaWFmbGFnX2JnYmFocmFpbmZsYWdfYmhidXJ1bmRpZmxhZ19iaWJlbmluZmxhZ19iamZsYWdfYmxzdF9iYXJ0aGVsZW15YmVybXVkYWZsYWdfYm1icnVuZWlmbGFnX2JuYm9saXZpYWZsYWdfYm9jYXJpYmJlYW5fbmV0aGVybGFuZHNmbGFnX2JxYnJhemlsZmxhZ19icmJhaGFtYXNmbGFnX2JzYmh1dGFuZmxhZ19idGJvdXZldF9pc2xhbmRmbGFnX2J2Ym90c3dhbmFmbGFnX2J3YmVsYXJ1c2ZsYWdfYnliZWxpemVmbGFnX2J6Y2FuYWRhZmxhZ19jYWNvY29zX2lzbGFuZHNmbGFnX2NjY29uZ29fa2luc2hhc2FmbGFnX2NkY2VudHJhbF9hZnJpY2FuX3JlcHVibGljZmxhZ19jZmNvbmdvX2JyYXp6YXZpbGxlZmxhZ19jZ2ZsYWdfY2hzd2l0emVybGFuZGNvdGVfZGl2b2lyZWZsYWdfY2ljb29rX2lzbGFuZHNmbGFnX2NrY2hpbGVmbGFnX2NsY2FtZXJvb25mbGFnX2NtY2hpbmFmbGFnX2NuY29sb21iaWFmbGFnX2NvY2xpcHBlcnRvbl9pc2xhbmRmbGFnX2NwY29zdGFfcmljYWZsYWdfY3JjdWJhZmxhZ19jdWNhcGVfdmVyZGVmbGFnX2N2Y3VyYWNhb2ZsYWdfY3djaHJpc3RtYXNfaXNsYW5kZmxhZ19jeGN5cHJ1c2ZsYWdfY3ljemVjaF9yZXB1YmxpY2N6ZWNoaWFmbGFnX2N6ZmxhZ19kZWdlcm1hbnlkaWVnb19nYXJjaWFmbGFnX2RnZGppYm91dGlmbGFnX2RqZGVubWFya2ZsYWdfZGtkb21pbmljYWZsYWdfZG1kb21pbmljYW5fcmVwdWJsaWNmbGFnX2RvYWxnZXJpYWZsYWdfZHpjZXV0YV9tZWxpbGxhZmxhZ19lYWVjdWFkb3JmbGFnX2VjZXN0b25pYWZsYWdfZWVlZ3lwdGZsYWdfZWdmbGFnX2Vod2VzdGVybl9zYWhhcmFlcml0cmVhZmxhZ19lcmZsYWdfZXNzcGFpbmV0aGlvcGlhZmxhZ19ldGV1cm9wZWFuX3VuaW9uZmxhZ19ldWZpbmxhbmRmbGFnX2ZpZmlqaWZsYWdfZmpmYWxrbGFuZF9pc2xhbmRzZmxhZ19ma2ZsYWdfZm1taWNyb25lc2lhZmFyb2VfaXNsYW5kc2ZsYWdfZm9mbGFnX2ZyZnJhbmNlZmxhZ19nYWdhYm9uZmxhZ19nYnVrdW5pdGVkX2tpbmdkb21mbGFnX2dkZ3JlbmFkYWZsYWdfZ2VnZW9yZ2lhZmxhZ19nZmZyZW5jaF9ndWlhbmFmbGFnX2dnZ3Vlcm5zZXlmbGFnX2doZ2hhbmFmbGFnX2dpZ2licmFsdGFyZmxhZ19nbGdyZWVubGFuZGZsYWdfZ21nYW1iaWFmbGFnX2duZ3VpbmVhZmxhZ19ncGd1YWRlbG91cGVlcXVhdG9yaWFsX2d1aW5lYWZsYWdfZ3FmbGFnX2dyZ3JlZWNlZmxhZ19nc3NvdXRoX2dlb3JnaWFfc291dGhfc2FuZHdpY2hfaXNsYW5kc2ZsYWdfZ3RndWF0ZW1hbGFmbGFnX2d1Z3VhbWZsYWdfZ3dndWluZWFfYmlzc2F1ZmxhZ19neWd1eWFuYWZsYWdfaGtob25nX2tvbmdmbGFnX2htaGVhcmRfbWNkb25hbGRfaXNsYW5kc2ZsYWdfaG5ob25kdXJhc2Nyb2F0aWFmbGFnX2hyZmxhZ19odGhhaXRpZmxhZ19odWh1bmdhcnljYW5hcnlfaXNsYW5kc2ZsYWdfaWNmbGFnX2lkaW5kb25lc2lhZmxhZ19pZWlyZWxhbmRmbGFnX2lsaXNyYWVsZmxhZ19pbWlzbGVfb2ZfbWFuZmxhZ19pbmluZGlhYnJpdGlzaF9pbmRpYW5fb2NlYW5fdGVycml0b3J5ZmxhZ19pb2ZsYWdfaXFpcmFxZmxhZ19pcmlyYW5mbGFnX2lzaWNlbGFuZGZsYWdfaXRpdGFseWZsYWdfamVqZXJzZXlmbGFnX2ptamFtYWljYWZsYWdfam9qb3JkYW5mbGFnX2pwamFwYW5mbGFnX2tla2VueWFmbGFnX2tna3lyZ3l6c3RhbmNhbWJvZGlhZmxhZ19raGZsYWdfa2lraXJpYmF0aWNvbW9yb3NmbGFnX2ttZmxhZ19rbnN0X2tpdHRzX25ldmlzZmxhZ19rcG5vcnRoX2tvcmVhZmxhZ19rcnNvdXRoX2tvcmVhZmxhZ19rd2t1d2FpdGNheW1hbl9pc2xhbmRzZmxhZ19reWZsYWdfa3prYXpha2hzdGFuZmxhZ19sYWxhb3NmbGFnX2xibGViYW5vbmZsYWdfbGNzdF9sdWNpYWZsYWdfbGlsaWVjaHRlbnN0ZWluZmxhZ19sa3NyaV9sYW5rYWZsYWdfbHJsaWJlcmlhZmxhZ19sc2xlc290aG9mbGFnX2x0bGl0aHVhbmlhZmxhZ19sdWx1eGVtYm91cmdmbGFnX2x2bGF0dmlhZmxhZ19seWxpYnlhZmxhZ19tYW1vcm9jY29mbGFnX21jbW9uYWNvZmxhZ19tZG1vbGRvdmFmbGFnX21lbW9udGVuZWdyb2ZsYWdfbWZzdF9tYXJ0aW5mbGFnX21nbWFkYWdhc2NhcmZsYWdfbWhtYXJzaGFsbF9pc2xhbmRzZmxhZ19ta21hY2Vkb25pYWZsYWdfbWxtYWxpYnVybWFmbGFnX21tbXlhbm1hcmZsYWdfbW5tb25nb2xpYWZsYWdfbW9tYWNhb21hY2F1ZmxhZ19tcG5vcnRoZXJuX21hcmlhbmFfaXNsYW5kc2ZsYWdfbXFtYXJ0aW5pcXVlZmxhZ19tcm1hdXJpdGFuaWFmbGFnX21zbW9udHNlcnJhdGZsYWdfbXRtYWx0YWZsYWdfbXVtYXVyaXRpdXNmbGFnX212bWFsZGl2ZXNmbGFnX213bWFsYXdpZmxhZ19teG1leGljb2ZsYWdfbXltYWxheXNpYWZsYWdfbXptb3phbWJpcXVlZmxhZ19uYW5hbWliaWFmbGFnX25jbmV3X2NhbGVkb25pYWZsYWdfbmVuaWdlcmZsYWdfbmZub3Jmb2xrX2lzbGFuZGZsYWdfbmduaWdlcmlhZmxhZ19uaW5pY2FyYWd1YWZsYWdfbmxuZXRoZXJsYW5kc2ZsYWdfbm9ub3J3YXlmbGFnX25wbmVwYWxmbGFnX25ybmF1cnVmbGFnX251bml1ZWZsYWdfbnpuZXdfemVhbGFuZGZsYWdfb21vbWFuZmxhZ19wYXBhbmFtYWZsYWdfcGVwZXJ1ZmxhZ19wZmZyZW5jaF9wb2x5bmVzaWFmbGFnX3BncGFwdWFfbmV3X2d1aW5lYWZsYWdfcGhwaGlsaXBwaW5lc2ZsYWdfcGtwYWtpc3RhbmZsYWdfcGxwb2xhbmRmbGFnX3Btc3RfcGllcnJlX21pcXVlbG9uZmxhZ19wbnBpdGNhaXJuX2lzbGFuZHNmbGFnX3BycHVlcnRvX3JpY29mbGFnX3BzcGFsZXN0aW5pYW5fdGVycml0b3JpZXNmbGFnX3B0cG9ydHVnYWxmbGFnX3B3cGFsYXVmbGFnX3B5cGFyYWd1YXlmbGFnX3FhcWF0YXJmbGFnX3JlcmV1bmlvbmZsYWdfcm9yb21hbmlhZmxhZ19yc3NlcmJpYWZsYWdfcnVydXNzaWFmbGFnX3J3cndhbmRhZmxhZ19zYXNhdWRpX2FyYWJpYWZsYWdfc2Jzb2xvbW9uX2lzbGFuZHNmbGFnX3Njc2V5Y2hlbGxlc2ZsYWdfc2RzdWRhbmZsYWdfc2Vzd2VkZW5mbGFnX3Nnc2luZ2Fwb3JlZmxhZ19zaHN0X2hlbGVuYWZsYWdfc2lzbG92ZW5pYWZsYWdfc2pzdmFsYmFyZF9qYW5fbWF5ZW5mbGFnX3Nrc2xvdmFraWFmbGFnX3Nsc2llcnJhX2xlb25lZmxhZ19zbXNhbl9tYXJpbm9mbGFnX3Nuc2VuZWdhbGZsYWdfc29zb21hbGlhZmxhZ19zcnN1cmluYW1lZmxhZ19zc3NvdXRoX3N1ZGFuZmxhZ19zdHNhb190b21lX3ByaW5jaXBlZWxfc2FsdmFkb3JmbGFnX3N2ZmxhZ19zeHNpbnRfbWFhcnRlbmZsYWdfc3lzeXJpYWVzd2F0aW5pZmxhZ19zenN3YXppbGFuZGZsYWdfdGF0cmlzdGFuX2RhX2N1bmhhZmxhZ190Y3R1cmtzX2NhaWNvc19pc2xhbmRzY2hhZGZsYWdfdGRmbGFnX3RmZnJlbmNoX3NvdXRoZXJuX3RlcnJpdG9yaWVzZmxhZ190Z3RvZ29mbGFnX3RodGhhaWxhbmRmbGFnX3RqdGFqaWtpc3RhbmZsYWdfdGt0b2tlbGF1ZmxhZ190bHRpbW9yX2xlc3RlZmxhZ190bXR1cmttZW5pc3RhbmZsYWdfdG50dW5pc2lhZmxhZ190b3RvbmdhZmxhZ190cnR1cmtleV90cmZsYWdfdHR0cmluaWRhZF90b2JhZ29mbGFnX3R2dHV2YWx1ZmxhZ190d3RhaXdhbmZsYWdfdHp0YW56YW5pYWZsYWdfdWF1a3JhaW5lZmxhZ191Z3VnYW5kYWZsYWdfdW11c19vdXRseWluZ19pc2xhbmRzZmxhZ191bnVudW5pdGVkX25hdGlvbnNmbGFnX3VzdW5pdGVkX3N0YXRlc3VzYWZsYWdfdXl1cnVndWF5ZmxhZ191enV6YmVraXN0YW5mbGFnX3ZhdmF0aWNhbl9jaXR5ZmxhZ192Y3N0X3ZpbmNlbnRfZ3JlbmFkaW5lc2ZsYWdfdmV2ZW5lenVlbGFicml0aXNoX3Zpcmdpbl9pc2xhbmRzZmxhZ192Z2ZsYWdfdml1c192aXJnaW5faXNsYW5kc2ZsYWdfdm52aWV0bmFtZmxhZ192dXZhbnVhdHVmbGFnX3dmd2FsbGlzX2Z1dHVuYWZsYWdfd3NzYW1vYWZsYWdfeGtrb3Nvdm9mbGFnX3lleWVtZW5mbGFnX3l0bWF5b3R0ZWZsYWdfemFzb3V0aF9hZnJpY2FmbGFnX3ptemFtYmlhZmxhZ196d3ppbWJhYndlZW5nbGFuZGZsYWdfZ2JlbmdmbGFnX2dic2N0c2NvdGxhbmRmbGFnX2did2xzd2FsZXM=', 'base64') 7 | 8 | exports.POINTS = to32(0, 12864) 9 | exports.KEY_TO_POINTS = to16(12864, 28296) 10 | exports.POINTS_TO_KEY = to16(28296, 32162) 11 | exports.KEYS = INDEX.subarray(32162, 58352) 12 | 13 | function to16 (offset, end) { 14 | const arr = new Uint16Array(INDEX.buffer, offset, (end - offset) / 2) 15 | hostToLE16(arr) 16 | return arr 17 | } 18 | 19 | function to32 (offset, end) { 20 | const arr = new Uint32Array(INDEX.buffer, offset, (end - offset) / 4) 21 | hostToLE32(arr) 22 | return arr 23 | } 24 | -------------------------------------------------------------------------------- /scripts/generate.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'fs' 2 | import fetch from 'node-fetch' 3 | import { fileURLToPath } from 'url-file-url' 4 | 5 | const out = fileURLToPath(new URL('../raw-index.js', import.meta.url)) 6 | const cdnUrl = 'https://cdn.jsdelivr.net/npm/emojibase-data' 7 | 8 | const { version } = await fetchJson(`${cdnUrl}@latest/package.json`) 9 | const data = await fetchJson(`${cdnUrl}@${version}/en/data.json`) 10 | const shortCodes = await fetchJson(`${cdnUrl}@${version}/en/shortcodes/emojibase.json`) 11 | 12 | addShortCodes(data, shortCodes) 13 | 14 | let keys = '' 15 | 16 | const points = [] 17 | const codes = [] 18 | const reverse = [] 19 | 20 | for (const emoji of data) { 21 | if (!emoji.shortCodes.length) continue 22 | 23 | const offset = points.length 24 | 25 | if (emoji.type === 0) { // prefer the "emojis" always over text ones 26 | for (const code of toCodepoints(emoji.emoji)) { 27 | points.push(code) 28 | } 29 | } else { 30 | for (const part of emoji.hexcode.split('-')) { 31 | points.push(parseInt(part, 16)) 32 | } 33 | } 34 | 35 | const count = points.length - offset 36 | 37 | let first = true 38 | 39 | for (const s of emoji.shortCodes) { 40 | const keyOffset = keys.length 41 | const keyLength = s.length 42 | const c = { key: s, point: [offset, count], string: [keyOffset, keyLength] } 43 | 44 | keys += s 45 | codes.push(c) 46 | 47 | if (first) { 48 | first = false 49 | reverse.push(c) 50 | } 51 | } 52 | } 53 | 54 | codes.sort((a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0) 55 | reverse.sort((a, b) => cmpCodePoints(toPoint(a.point), toPoint(b.point))) 56 | 57 | const KEYS = Buffer.from(keys) 58 | const POINTS = new Uint32Array(points) 59 | const KEY_TO_POINTS = new Uint16Array(codes.length * 3) 60 | const POINTS_TO_KEY = new Uint16Array(reverse.length) 61 | 62 | for (let i = 0; i < codes.length; i++) { 63 | const c = codes[i] 64 | 65 | let ptr = i * 3 66 | 67 | KEY_TO_POINTS[ptr++] = c.string[1] + 256 * c.point[1] 68 | KEY_TO_POINTS[ptr++] = c.string[0] 69 | KEY_TO_POINTS[ptr++] = c.point[0] 70 | } 71 | 72 | for (let i = 0; i < reverse.length; i++) { 73 | const c = reverse[i] 74 | const m = codes.indexOf(c) 75 | 76 | POINTS_TO_KEY[i] = m 77 | } 78 | 79 | const INDEX = Buffer.concat([ 80 | Buffer.from(POINTS.buffer, POINTS.byteOffset, POINTS.byteLength), 81 | Buffer.from(KEY_TO_POINTS.buffer, KEY_TO_POINTS.byteOffset, KEY_TO_POINTS.byteLength), 82 | Buffer.from(POINTS_TO_KEY.buffer, POINTS_TO_KEY.byteOffset, POINTS_TO_KEY.byteLength), 83 | KEYS 84 | ]) 85 | 86 | let s = `// https://emojibase.dev version ${version}\n\n` 87 | 88 | s += 'const b4a = require(\'b4a\')\n' 89 | s += 'const { hostToLE16, hostToLE32 } = require(\'convert-endianness\')\n\n' 90 | s += `const INDEX = b4a.from('${INDEX.toString('base64')}', 'base64')\n\n` 91 | 92 | let n = 0 93 | 94 | s += `exports.POINTS = to32(${n}, ${n += POINTS.byteLength})\n` 95 | s += `exports.KEY_TO_POINTS = to16(${n}, ${n += KEY_TO_POINTS.byteLength})\n` 96 | s += `exports.POINTS_TO_KEY = to16(${n}, ${n += POINTS_TO_KEY.byteLength})\n` 97 | s += `exports.KEYS = INDEX.subarray(${n}, ${n += KEYS.byteLength})\n` 98 | s += '\n' 99 | s += `function to16 (offset, end) { 100 | const arr = new Uint16Array(INDEX.buffer, offset, (end - offset) / 2) 101 | hostToLE16(arr) 102 | return arr 103 | }\n\n` 104 | s += `function to32 (offset, end) { 105 | const arr = new Uint32Array(INDEX.buffer, offset, (end - offset) / 4) 106 | hostToLE32(arr) 107 | return arr 108 | }\n` 109 | 110 | console.log('Wrote raw-index to', out) 111 | fs.writeFileSync(out, s) 112 | 113 | function cmpCodePoints (a, b) { 114 | if (a.length !== b.length) return a.length - b.length 115 | for (let i = 0; i < a.length; i++) { 116 | if (a[i] !== b[i]) return a[i] - b[i] 117 | } 118 | return 0 119 | } 120 | 121 | function toPoint (ptr) { 122 | const p = new Array(ptr[1]) 123 | for (let i = 0; i < p.length; i++) p[i] = points[ptr[0] + i] 124 | return p 125 | } 126 | 127 | function addShortCodes (data, shortCodes) { 128 | for (const emoji of data) { 129 | emoji.shortCodes = Array.isArray(shortCodes[emoji.hexcode]) 130 | ? shortCodes[emoji.hexcode] 131 | : [shortCodes[emoji.hexcode]] 132 | if (emoji.skins) { 133 | addShortCodes(emoji.skins, shortCodes) 134 | } 135 | } 136 | } 137 | 138 | async function fetchJson (url) { 139 | const response = await fetch(url) 140 | return await response.json() 141 | } 142 | 143 | function toCodepoints (emoji) { 144 | const chars = [...emoji] 145 | const codes = new Array(chars.length) 146 | 147 | for (let i = 0; i < codes.length; i++) { 148 | codes[i] = chars[i].codePointAt(0) 149 | } 150 | 151 | return codes 152 | } 153 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | const test = require('brittle') 2 | const e = require('./') 3 | 4 | test('shortcodes to emoji', function (t) { 5 | t.is(e.toEmoji('neutral'), '😐') 6 | t.is(e.toEmoji('+1'), '👍') 7 | t.is(e.toEmoji('-1'), '👎') 8 | t.is(e.toEmoji('wales'), '🏴󠁧󠁢󠁷󠁬󠁳󠁿') 9 | t.is(e.toEmoji('not-an-emoji'), '') 10 | }) 11 | 12 | test('emoji to shortcodes', function (t) { 13 | t.is(e.toShortCode('😐'), 'neutral') 14 | t.is(e.toShortCode('👍'), '+1') 15 | t.is(e.toShortCode('👎'), '-1') 16 | t.is(e.toShortCode('🏴󠁧󠁢󠁷󠁬󠁳󠁿'), 'flag_gbwls') 17 | t.is(e.toShortCode('not-an-emoji'), '') 18 | }) 19 | 20 | test('emojis over text', function (t) { 21 | t.is(e.toEmoji('heart'), '❤️') 22 | t.is(e.toShortCode('❤️'), 'heart') 23 | }) 24 | --------------------------------------------------------------------------------