lean4monaco 1.0.46 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/README.md +75 -0
  2. package/dist/JuliaMono-Regular.ttf +0 -0
  3. package/dist/css/custom.css +7 -1
  4. package/dist/infowebview.d.ts +3 -4
  5. package/dist/infowebview.js +4 -4
  6. package/dist/lean4-infoview/codicon.ttf +0 -0
  7. package/dist/lean4-infoview/esm-shims/react-dom.d.ts +5 -0
  8. package/dist/lean4-infoview/esm-shims/react-jsx-runtime.d.ts +5 -0
  9. package/dist/lean4-infoview/esm-shims/react.d.ts +5 -0
  10. package/dist/lean4-infoview/index.css +4161 -0
  11. package/dist/lean4-infoview/index.d.ts +16 -0
  12. package/dist/lean4-infoview/index.development.js +37312 -0
  13. package/dist/lean4-infoview/index.production.min.js +1528 -0
  14. package/dist/lean4-infoview/infoview/collapsing.d.ts +12 -0
  15. package/dist/lean4-infoview/infoview/contexts.d.ts +10 -0
  16. package/dist/lean4-infoview/infoview/editorConnection.d.ts +22 -0
  17. package/dist/lean4-infoview/infoview/errors.d.ts +14 -0
  18. package/dist/lean4-infoview/infoview/event.d.ts +33 -0
  19. package/dist/lean4-infoview/infoview/goalLocation.d.ts +61 -0
  20. package/dist/lean4-infoview/infoview/goals.d.ts +46 -0
  21. package/dist/lean4-infoview/infoview/info.d.ts +18 -0
  22. package/dist/lean4-infoview/infoview/infos.d.ts +2 -0
  23. package/dist/lean4-infoview/infoview/interactiveCode.d.ts +19 -0
  24. package/dist/lean4-infoview/infoview/main.d.ts +13 -0
  25. package/dist/lean4-infoview/infoview/messages.d.ts +19 -0
  26. package/dist/lean4-infoview/infoview/rpcSessions.d.ts +11 -0
  27. package/dist/lean4-infoview/infoview/serverVersion.d.ts +10 -0
  28. package/dist/lean4-infoview/infoview/tooltips.d.ts +32 -0
  29. package/dist/lean4-infoview/infoview/traceExplorer.d.ts +11 -0
  30. package/dist/lean4-infoview/infoview/userWidget.d.ts +39 -0
  31. package/dist/lean4-infoview/infoview/util.d.ts +144 -0
  32. package/dist/lean4-infoview/loader.d.ts +20 -0
  33. package/dist/lean4-infoview/loader.development.js +1006 -0
  34. package/dist/lean4-infoview/loader.production.min.js +1 -0
  35. package/dist/lean4-infoview/react-dom.development.js +30537 -0
  36. package/dist/lean4-infoview/react-dom.production.min.js +21 -0
  37. package/dist/lean4-infoview/react-jsx-runtime.development.js +1362 -0
  38. package/dist/lean4-infoview/react-jsx-runtime.production.min.js +1 -0
  39. package/dist/lean4-infoview/react.development.js +2823 -0
  40. package/dist/lean4-infoview/react.production.min.js +1 -0
  41. package/dist/leanmonaco.js +5 -4
  42. package/dist/monaco-lean4/vscode-lean4/package.json +944 -0
  43. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.d.ts +9 -0
  44. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.js +20 -0
  45. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationHoverProvider.d.ts +12 -0
  46. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationHoverProvider.js +40 -0
  47. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.d.ts +20 -0
  48. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.js +79 -0
  49. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationConfig.d.ts +13 -0
  50. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationConfig.js +29 -0
  51. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.d.ts +28 -0
  52. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.js +124 -0
  53. package/dist/monaco-lean4/vscode-lean4/src/config.d.ts +33 -0
  54. package/dist/monaco-lean4/vscode-lean4/src/config.js +119 -0
  55. package/dist/monaco-lean4/vscode-lean4/src/diagnostics/setupNotifs.d.ts +27 -0
  56. package/dist/monaco-lean4/vscode-lean4/src/diagnostics/setupNotifs.js +133 -0
  57. package/dist/monaco-lean4/vscode-lean4/src/infoview.d.ts +69 -0
  58. package/dist/monaco-lean4/vscode-lean4/src/infoview.js +711 -0
  59. package/dist/monaco-lean4/vscode-lean4/src/leanclient.d.ts +67 -0
  60. package/dist/monaco-lean4/vscode-lean4/src/leanclient.js +443 -0
  61. package/dist/monaco-lean4/vscode-lean4/src/rpc.d.ts +16 -0
  62. package/dist/monaco-lean4/vscode-lean4/src/rpc.js +102 -0
  63. package/dist/monaco-lean4/vscode-lean4/src/taskgutter.d.ts +11 -0
  64. package/dist/monaco-lean4/vscode-lean4/src/taskgutter.js +130 -0
  65. package/dist/monaco-lean4/vscode-lean4/src/utils/batch.d.ts +37 -0
  66. package/dist/monaco-lean4/vscode-lean4/src/utils/batch.js +203 -0
  67. package/dist/monaco-lean4/vscode-lean4/src/utils/clientProvider.d.ts +41 -0
  68. package/dist/monaco-lean4/vscode-lean4/src/utils/clientProvider.js +205 -0
  69. package/dist/monaco-lean4/vscode-lean4/src/utils/converters.d.ts +16 -0
  70. package/dist/monaco-lean4/vscode-lean4/src/utils/converters.js +129 -0
  71. package/dist/monaco-lean4/vscode-lean4/src/utils/elan.d.ts +3 -0
  72. package/dist/monaco-lean4/vscode-lean4/src/utils/elan.js +4 -0
  73. package/dist/monaco-lean4/vscode-lean4/src/utils/envPath.d.ts +21 -0
  74. package/dist/monaco-lean4/vscode-lean4/src/utils/envPath.js +53 -0
  75. package/dist/monaco-lean4/vscode-lean4/src/utils/exturi.d.ts +35 -0
  76. package/dist/monaco-lean4/vscode-lean4/src/utils/exturi.js +136 -0
  77. package/dist/monaco-lean4/vscode-lean4/src/utils/fsHelper.d.ts +17 -0
  78. package/dist/monaco-lean4/vscode-lean4/src/utils/fsHelper.js +36 -0
  79. package/dist/monaco-lean4/vscode-lean4/src/utils/leanInstaller.d.ts +37 -0
  80. package/dist/monaco-lean4/vscode-lean4/src/utils/leanInstaller.js +210 -0
  81. package/dist/monaco-lean4/vscode-lean4/src/utils/logger.d.ts +7 -0
  82. package/dist/monaco-lean4/vscode-lean4/src/utils/logger.js +20 -0
  83. package/dist/monaco-lean4/vscode-lean4/src/utils/notifs.d.ts +24 -0
  84. package/dist/monaco-lean4/vscode-lean4/src/utils/notifs.js +110 -0
  85. package/dist/monaco-lean4/vscode-lean4/src/utils/projectInfo.d.ts +9 -0
  86. package/dist/monaco-lean4/vscode-lean4/src/utils/projectInfo.js +125 -0
  87. package/dist/monacoleanclient.d.ts +1 -2
  88. package/dist/monacoleanclient.js +3 -3
  89. package/dist/vscode-lean4/lean4-infoview/package.json +25 -23
  90. package/dist/vscode-lean4/lean4-infoview/src/infoview/highlightjs.css +210 -0
  91. package/dist/vscode-lean4/lean4-infoview/tsconfig.json +6 -2
  92. package/dist/vscode-lean4/lean4-infoview-api/package.json +1 -1
  93. package/dist/vscode-lean4/lean4-unicode-input/package.json +1 -1
  94. package/dist/vscode-lean4/lean4-unicode-input/src/abbreviations.json +12 -12
  95. package/dist/vscode-lean4/lean4-unicode-input-component/package.json +2 -2
  96. package/dist/vscode-lean4/package-lock.json +6129 -3245
  97. package/dist/vscode-lean4/vscode-lean4/language-configuration.json +1 -1
  98. package/dist/vscode-lean4/vscode-lean4/loogleview/static/index.css +19 -16
  99. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-dark.svg +91 -0
  100. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-dark.svg +114 -0
  101. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-light.svg +114 -0
  102. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-passthrough-dark.svg +109 -0
  103. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-passthrough-light.svg +109 -0
  104. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-init-dark.svg +100 -0
  105. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-init-light.svg +100 -0
  106. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-dark.svg +123 -0
  107. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-light.svg +123 -0
  108. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-passthrough-dark.svg +109 -0
  109. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-passthrough-light.svg +109 -0
  110. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-light.svg +91 -0
  111. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-dark.svg +123 -0
  112. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-light.svg +123 -0
  113. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-passthrough-dark.svg +118 -0
  114. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-passthrough-light.svg +118 -0
  115. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-dark.svg +138 -0
  116. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-i-passthrough-dark.svg +160 -0
  117. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-i-passthrough-light.svg +160 -0
  118. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-l-passthrough-dark.svg +158 -0
  119. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-l-passthrough-light.svg +158 -0
  120. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-light.svg +138 -0
  121. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-t-passthrough-dark.svg +169 -0
  122. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-t-passthrough-light.svg +169 -0
  123. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-dark.svg +147 -0
  124. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-i-passthrough-dark.svg +170 -0
  125. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-i-passthrough-light.svg +170 -0
  126. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-l-passthrough-dark.svg +167 -0
  127. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-l-passthrough-light.svg +167 -0
  128. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-light.svg +147 -0
  129. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-t-passthrough-dark.svg +179 -0
  130. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-t-passthrough-light.svg +179 -0
  131. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-dark.svg +165 -0
  132. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-i-passthrough-dark.svg +187 -0
  133. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-i-passthrough-light.svg +187 -0
  134. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-l-passthrough-dark.svg +185 -0
  135. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-l-passthrough-light.svg +185 -0
  136. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-light.svg +165 -0
  137. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-t-passthrough-dark.svg +196 -0
  138. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-t-passthrough-light.svg +196 -0
  139. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-dark.svg +184 -0
  140. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-i-passthrough-dark.svg +206 -0
  141. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-i-passthrough-light.svg +206 -0
  142. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-l-passthrough-dark.svg +204 -0
  143. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-l-passthrough-light.svg +204 -0
  144. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-light.svg +184 -0
  145. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-t-passthrough-dark.svg +215 -0
  146. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-t-passthrough-light.svg +215 -0
  147. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-dark.svg +132 -0
  148. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-i-passthrough-dark.svg +154 -0
  149. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-i-passthrough-light.svg +154 -0
  150. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-l-passthrough-dark.svg +152 -0
  151. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-l-passthrough-light.svg +152 -0
  152. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-light.svg +132 -0
  153. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-t-passthrough-dark.svg +163 -0
  154. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-t-passthrough-light.svg +163 -0
  155. package/dist/vscode-lean4/vscode-lean4/moogleview/static/index.css +198 -0
  156. package/dist/vscode-lean4/vscode-lean4/moogleview/tsconfig.json +10 -0
  157. package/dist/vscode-lean4/vscode-lean4/package.json +638 -18
  158. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.d.ts +2 -2
  159. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.js +2 -2
  160. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.d.ts +2 -3
  161. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.js +3 -5
  162. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.d.ts +1 -2
  163. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.js +4 -8
  164. package/dist/vscode-lean4/vscode-lean4/src/config.d.ts +14 -1
  165. package/dist/vscode-lean4/vscode-lean4/src/config.js +56 -5
  166. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnoser.d.ts +36 -5
  167. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnoser.js +59 -23
  168. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnostics.d.ts +22 -17
  169. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnostics.js +182 -119
  170. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupNotifs.d.ts +33 -20
  171. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupNotifs.js +235 -89
  172. package/dist/vscode-lean4/vscode-lean4/src/infoview.d.ts +7 -18
  173. package/dist/vscode-lean4/vscode-lean4/src/infoview.js +217 -102
  174. package/dist/vscode-lean4/vscode-lean4/src/leanclient.d.ts +12 -7
  175. package/dist/vscode-lean4/vscode-lean4/src/leanclient.js +187 -64
  176. package/dist/vscode-lean4/vscode-lean4/src/taskgutter.d.ts +35 -3
  177. package/dist/vscode-lean4/vscode-lean4/src/taskgutter.js +533 -93
  178. package/dist/vscode-lean4/vscode-lean4/src/utils/batch.d.ts +12 -4
  179. package/dist/vscode-lean4/vscode-lean4/src/utils/batch.js +78 -72
  180. package/dist/vscode-lean4/vscode-lean4/src/utils/clientProvider.d.ts +9 -9
  181. package/dist/vscode-lean4/vscode-lean4/src/utils/clientProvider.js +121 -77
  182. package/dist/vscode-lean4/vscode-lean4/src/utils/converters.d.ts +15 -0
  183. package/dist/vscode-lean4/vscode-lean4/src/utils/converters.js +9 -0
  184. package/dist/vscode-lean4/vscode-lean4/src/utils/elan.d.ts +179 -1
  185. package/dist/vscode-lean4/vscode-lean4/src/utils/elan.js +422 -3
  186. package/dist/vscode-lean4/vscode-lean4/src/utils/exturi.d.ts +3 -1
  187. package/dist/vscode-lean4/vscode-lean4/src/utils/exturi.js +11 -11
  188. package/dist/vscode-lean4/vscode-lean4/src/utils/groupBy.d.ts +2 -0
  189. package/dist/vscode-lean4/vscode-lean4/src/utils/groupBy.js +17 -0
  190. package/dist/vscode-lean4/vscode-lean4/src/utils/internalErrors.d.ts +2 -0
  191. package/dist/vscode-lean4/vscode-lean4/src/utils/internalErrors.js +35 -0
  192. package/dist/vscode-lean4/vscode-lean4/src/utils/leanCmdRunner.d.ts +34 -0
  193. package/dist/vscode-lean4/vscode-lean4/src/utils/leanCmdRunner.js +249 -0
  194. package/dist/vscode-lean4/vscode-lean4/src/utils/leanEditorProvider.d.ts +83 -0
  195. package/dist/vscode-lean4/vscode-lean4/src/utils/leanEditorProvider.js +323 -0
  196. package/dist/vscode-lean4/vscode-lean4/src/utils/leanInstaller.d.ts +41 -12
  197. package/dist/vscode-lean4/vscode-lean4/src/utils/leanInstaller.js +245 -128
  198. package/dist/vscode-lean4/vscode-lean4/src/utils/notifs.d.ts +27 -22
  199. package/dist/vscode-lean4/vscode-lean4/src/utils/notifs.js +177 -82
  200. package/dist/vscode-lean4/vscode-lean4/src/utils/projectInfo.d.ts +11 -4
  201. package/dist/vscode-lean4/vscode-lean4/src/utils/projectInfo.js +18 -16
  202. package/dist/vscode-lean4/vscode-lean4/src/utils/semverRegex.d.ts +1 -0
  203. package/dist/vscode-lean4/vscode-lean4/src/utils/semverRegex.js +2 -0
  204. package/dist/vscode-lean4/vscode-lean4/src/utils/viewColumn.d.ts +3 -0
  205. package/dist/vscode-lean4/vscode-lean4/src/utils/viewColumn.js +22 -0
  206. package/dist/vscode-lean4/vscode-lean4/tsconfig.json +2 -1
  207. package/dist/vscode-lean4/vscode-lean4/webview/tsconfig.json +3 -1
  208. package/dist/vscode.css +7 -0
  209. package/package.json +7 -5
@@ -0,0 +1,1006 @@
1
+ window.esmsInitOptions = { shimMode: true }
2
+
3
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
+
5
+ /* ES Module Shims 1.8.3 */
6
+
7
+ (function () {
8
+
9
+ const hasWindow = typeof window !== 'undefined';
10
+ const hasDocument = typeof document !== 'undefined';
11
+
12
+ const noop = () => {};
13
+
14
+ const optionsScript = hasDocument ? document.querySelector('script[type=esms-options]') : undefined;
15
+
16
+ const esmsInitOptions = optionsScript ? JSON.parse(optionsScript.innerHTML) : {};
17
+ Object.assign(esmsInitOptions, self.esmsInitOptions || {});
18
+
19
+ let shimMode = hasDocument ? !!esmsInitOptions.shimMode : true;
20
+
21
+ const importHook = globalHook(shimMode && esmsInitOptions.onimport);
22
+ const resolveHook = globalHook(shimMode && esmsInitOptions.resolve);
23
+ let fetchHook = esmsInitOptions.fetch ? globalHook(esmsInitOptions.fetch) : fetch;
24
+ const metaHook = esmsInitOptions.meta ? globalHook(shimMode && esmsInitOptions.meta) : noop;
25
+
26
+ const mapOverrides = esmsInitOptions.mapOverrides;
27
+
28
+ let nonce = esmsInitOptions.nonce;
29
+ if (!nonce && hasDocument) {
30
+ const nonceElement = document.querySelector('script[nonce]');
31
+ if (nonceElement)
32
+ nonce = nonceElement.nonce || nonceElement.getAttribute('nonce');
33
+ }
34
+
35
+ const onerror = globalHook(esmsInitOptions.onerror || noop);
36
+ const onpolyfill = esmsInitOptions.onpolyfill ? globalHook(esmsInitOptions.onpolyfill) : () => {
37
+ console.log('%c^^ Module TypeError above is polyfilled and can be ignored ^^', 'font-weight:900;color:#391');
38
+ };
39
+
40
+ const { revokeBlobURLs, noLoadEventRetriggers, enforceIntegrity } = esmsInitOptions;
41
+
42
+ function globalHook (name) {
43
+ return typeof name === 'string' ? self[name] : name;
44
+ }
45
+
46
+ const enable = Array.isArray(esmsInitOptions.polyfillEnable) ? esmsInitOptions.polyfillEnable : [];
47
+ const cssModulesEnabled = enable.includes('css-modules');
48
+ const jsonModulesEnabled = enable.includes('json-modules');
49
+ const wasmModulesEnabled = enable.includes('wasm-modules');
50
+
51
+ const edge = !navigator.userAgentData && !!navigator.userAgent.match(/Edge\/\d+\.\d+/);
52
+
53
+ const baseUrl = hasDocument
54
+ ? document.baseURI
55
+ : `${location.protocol}//${location.host}${location.pathname.includes('/')
56
+ ? location.pathname.slice(0, location.pathname.lastIndexOf('/') + 1)
57
+ : location.pathname}`;
58
+
59
+ const createBlob = (source, type = 'text/javascript') => URL.createObjectURL(new Blob([source], { type }));
60
+ let { skip } = esmsInitOptions;
61
+ if (Array.isArray(skip)) {
62
+ const l = skip.map(s => new URL(s, baseUrl).href);
63
+ skip = s => l.some(i => i[i.length - 1] === '/' && s.startsWith(i) || s === i);
64
+ }
65
+ else if (typeof skip === 'string') {
66
+ const r = new RegExp(skip);
67
+ skip = s => r.test(s);
68
+ } else if (skip instanceof RegExp) {
69
+ skip = s => skip.test(s);
70
+ }
71
+
72
+ const eoop = err => setTimeout(() => { throw err });
73
+
74
+ const throwError = err => { (self.reportError || hasWindow && window.safari && console.error || eoop)(err), void onerror(err); };
75
+
76
+ function fromParent (parent) {
77
+ return parent ? ` imported from ${parent}` : '';
78
+ }
79
+
80
+ let importMapSrcOrLazy = false;
81
+
82
+ function setImportMapSrcOrLazy () {
83
+ importMapSrcOrLazy = true;
84
+ }
85
+
86
+ // shim mode is determined on initialization, no late shim mode
87
+ if (!shimMode) {
88
+ if (document.querySelectorAll('script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]').length) {
89
+ shimMode = true;
90
+ }
91
+ else {
92
+ let seenScript = false;
93
+ for (const script of document.querySelectorAll('script[type=module],script[type=importmap]')) {
94
+ if (!seenScript) {
95
+ if (script.type === 'module' && !script.ep)
96
+ seenScript = true;
97
+ }
98
+ else if (script.type === 'importmap' && seenScript) {
99
+ importMapSrcOrLazy = true;
100
+ break;
101
+ }
102
+ }
103
+ }
104
+ }
105
+
106
+ const backslashRegEx = /\\/g;
107
+
108
+ function asURL (url) {
109
+ try {
110
+ if (url.indexOf(':') !== -1)
111
+ return new URL(url).href;
112
+ }
113
+ catch (_) {}
114
+ }
115
+
116
+ function resolveUrl (relUrl, parentUrl) {
117
+ return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (asURL(relUrl) || resolveIfNotPlainOrUrl('./' + relUrl, parentUrl));
118
+ }
119
+
120
+ function resolveIfNotPlainOrUrl (relUrl, parentUrl) {
121
+ const hIdx = parentUrl.indexOf('#'), qIdx = parentUrl.indexOf('?');
122
+ if (hIdx + qIdx > -2)
123
+ parentUrl = parentUrl.slice(0, hIdx === -1 ? qIdx : qIdx === -1 || qIdx > hIdx ? hIdx : qIdx);
124
+ if (relUrl.indexOf('\\') !== -1)
125
+ relUrl = relUrl.replace(backslashRegEx, '/');
126
+ // protocol-relative
127
+ if (relUrl[0] === '/' && relUrl[1] === '/') {
128
+ return parentUrl.slice(0, parentUrl.indexOf(':') + 1) + relUrl;
129
+ }
130
+ // relative-url
131
+ else if (relUrl[0] === '.' && (relUrl[1] === '/' || relUrl[1] === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||
132
+ relUrl.length === 1 && (relUrl += '/')) ||
133
+ relUrl[0] === '/') {
134
+ const parentProtocol = parentUrl.slice(0, parentUrl.indexOf(':') + 1);
135
+ if (parentProtocol === 'blob:') {
136
+ throw new TypeError(`Failed to resolve module specifier "${relUrl}". Invalid relative url or base scheme isn't hierarchical.`);
137
+ }
138
+ // Disabled, but these cases will give inconsistent results for deep backtracking
139
+ //if (parentUrl[parentProtocol.length] !== '/')
140
+ // throw new Error('Cannot resolve');
141
+ // read pathname from parent URL
142
+ // pathname taken to be part after leading "/"
143
+ let pathname;
144
+ if (parentUrl[parentProtocol.length + 1] === '/') {
145
+ // resolving to a :// so we need to read out the auth and host
146
+ if (parentProtocol !== 'file:') {
147
+ pathname = parentUrl.slice(parentProtocol.length + 2);
148
+ pathname = pathname.slice(pathname.indexOf('/') + 1);
149
+ }
150
+ else {
151
+ pathname = parentUrl.slice(8);
152
+ }
153
+ }
154
+ else {
155
+ // resolving to :/ so pathname is the /... part
156
+ pathname = parentUrl.slice(parentProtocol.length + (parentUrl[parentProtocol.length] === '/'));
157
+ }
158
+
159
+ if (relUrl[0] === '/')
160
+ return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl;
161
+
162
+ // join together and split for removal of .. and . segments
163
+ // looping the string instead of anything fancy for perf reasons
164
+ // '../../../../../z' resolved to 'x/y' is just 'z'
165
+ const segmented = pathname.slice(0, pathname.lastIndexOf('/') + 1) + relUrl;
166
+
167
+ const output = [];
168
+ let segmentIndex = -1;
169
+ for (let i = 0; i < segmented.length; i++) {
170
+ // busy reading a segment - only terminate on '/'
171
+ if (segmentIndex !== -1) {
172
+ if (segmented[i] === '/') {
173
+ output.push(segmented.slice(segmentIndex, i + 1));
174
+ segmentIndex = -1;
175
+ }
176
+ continue;
177
+ }
178
+ // new segment - check if it is relative
179
+ else if (segmented[i] === '.') {
180
+ // ../ segment
181
+ if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
182
+ output.pop();
183
+ i += 2;
184
+ continue;
185
+ }
186
+ // ./ segment
187
+ else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
188
+ i += 1;
189
+ continue;
190
+ }
191
+ }
192
+ // it is the start of a new segment
193
+ while (segmented[i] === '/') i++;
194
+ segmentIndex = i;
195
+ }
196
+ // finish reading out the last segment
197
+ if (segmentIndex !== -1)
198
+ output.push(segmented.slice(segmentIndex));
199
+ return parentUrl.slice(0, parentUrl.length - pathname.length) + output.join('');
200
+ }
201
+ }
202
+
203
+ function resolveAndComposeImportMap (json, baseUrl, parentMap) {
204
+ const outMap = { imports: Object.assign({}, parentMap.imports), scopes: Object.assign({}, parentMap.scopes) };
205
+
206
+ if (json.imports)
207
+ resolveAndComposePackages(json.imports, outMap.imports, baseUrl, parentMap);
208
+
209
+ if (json.scopes)
210
+ for (let s in json.scopes) {
211
+ const resolvedScope = resolveUrl(s, baseUrl);
212
+ resolveAndComposePackages(json.scopes[s], outMap.scopes[resolvedScope] || (outMap.scopes[resolvedScope] = {}), baseUrl, parentMap);
213
+ }
214
+
215
+ return outMap;
216
+ }
217
+
218
+ function getMatch (path, matchObj) {
219
+ if (matchObj[path])
220
+ return path;
221
+ let sepIndex = path.length;
222
+ do {
223
+ const segment = path.slice(0, sepIndex + 1);
224
+ if (segment in matchObj)
225
+ return segment;
226
+ } while ((sepIndex = path.lastIndexOf('/', sepIndex - 1)) !== -1)
227
+ }
228
+
229
+ function applyPackages (id, packages) {
230
+ const pkgName = getMatch(id, packages);
231
+ if (pkgName) {
232
+ const pkg = packages[pkgName];
233
+ if (pkg === null) return;
234
+ return pkg + id.slice(pkgName.length);
235
+ }
236
+ }
237
+
238
+
239
+ function resolveImportMap (importMap, resolvedOrPlain, parentUrl) {
240
+ let scopeUrl = parentUrl && getMatch(parentUrl, importMap.scopes);
241
+ while (scopeUrl) {
242
+ const packageResolution = applyPackages(resolvedOrPlain, importMap.scopes[scopeUrl]);
243
+ if (packageResolution)
244
+ return packageResolution;
245
+ scopeUrl = getMatch(scopeUrl.slice(0, scopeUrl.lastIndexOf('/')), importMap.scopes);
246
+ }
247
+ return applyPackages(resolvedOrPlain, importMap.imports) || resolvedOrPlain.indexOf(':') !== -1 && resolvedOrPlain;
248
+ }
249
+
250
+ function resolveAndComposePackages (packages, outPackages, baseUrl, parentMap) {
251
+ for (let p in packages) {
252
+ const resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl) || p;
253
+ if ((!shimMode || !mapOverrides) && outPackages[resolvedLhs] && (outPackages[resolvedLhs] !== packages[resolvedLhs])) {
254
+ throw Error(`Rejected map override "${resolvedLhs}" from ${outPackages[resolvedLhs]} to ${packages[resolvedLhs]}.`);
255
+ }
256
+ let target = packages[p];
257
+ if (typeof target !== 'string')
258
+ continue;
259
+ const mapped = resolveImportMap(parentMap, resolveIfNotPlainOrUrl(target, baseUrl) || target, baseUrl);
260
+ if (mapped) {
261
+ outPackages[resolvedLhs] = mapped;
262
+ continue;
263
+ }
264
+ console.warn(`Mapping "${p}" -> "${packages[p]}" does not resolve`);
265
+ }
266
+ }
267
+
268
+ let dynamicImport = !hasDocument && (0, eval)('u=>import(u)');
269
+
270
+ let supportsDynamicImport;
271
+
272
+ const dynamicImportCheck = hasDocument && new Promise(resolve => {
273
+ const s = Object.assign(document.createElement('script'), {
274
+ src: createBlob('self._d=u=>import(u)'),
275
+ ep: true
276
+ });
277
+ s.setAttribute('nonce', nonce);
278
+ s.addEventListener('load', () => {
279
+ if (!(supportsDynamicImport = !!(dynamicImport = self._d))) {
280
+ let err;
281
+ window.addEventListener('error', _err => err = _err);
282
+ dynamicImport = (url, opts) => new Promise((resolve, reject) => {
283
+ const s = Object.assign(document.createElement('script'), {
284
+ type: 'module',
285
+ src: createBlob(`import*as m from'${url}';self._esmsi=m`)
286
+ });
287
+ err = undefined;
288
+ s.ep = true;
289
+ if (nonce)
290
+ s.setAttribute('nonce', nonce);
291
+ // Safari is unique in supporting module script error events
292
+ s.addEventListener('error', cb);
293
+ s.addEventListener('load', cb);
294
+ function cb (_err) {
295
+ document.head.removeChild(s);
296
+ if (self._esmsi) {
297
+ resolve(self._esmsi, baseUrl);
298
+ self._esmsi = undefined;
299
+ }
300
+ else {
301
+ reject(!(_err instanceof Event) && _err || err && err.error || new Error(`Error loading ${opts && opts.errUrl || url} (${s.src}).`));
302
+ err = undefined;
303
+ }
304
+ }
305
+ document.head.appendChild(s);
306
+ });
307
+ }
308
+ document.head.removeChild(s);
309
+ delete self._d;
310
+ resolve();
311
+ });
312
+ document.head.appendChild(s);
313
+ });
314
+
315
+ // support browsers without dynamic import support (eg Firefox 6x)
316
+ let supportsJsonAssertions = false;
317
+ let supportsCssAssertions = false;
318
+
319
+ const supports = hasDocument && HTMLScriptElement.supports;
320
+
321
+ let supportsImportMaps = supports && supports.name === 'supports' && supports('importmap');
322
+ let supportsImportMeta = supportsDynamicImport;
323
+ let supportsWasmModules = false;
324
+
325
+ const importMetaCheck = 'import.meta';
326
+ const moduleCheck = 'import"x"';
327
+ const cssModulesCheck = `assert{type:"css"}`;
328
+ const jsonModulesCheck = `assert{type:"json"}`;
329
+
330
+ let featureDetectionPromise = Promise.resolve(dynamicImportCheck).then(() => {
331
+ if (!supportsDynamicImport)
332
+ return;
333
+ if (!hasDocument)
334
+ return Promise.all([
335
+ supportsImportMaps || dynamicImport(createBlob(importMetaCheck)).then(() => supportsImportMeta = true, noop),
336
+ cssModulesEnabled && dynamicImport(createBlob(moduleCheck.replace('x', createBlob('', 'text/css')) + cssModulesCheck)).then(() => supportsCssAssertions = true, noop),
337
+ jsonModulesEnabled && dynamicImport(createBlob(moduleCheck.replace('x', createBlob('{}', 'text/json')) + jsonModulesCheck)).then(() => supportsJsonAssertions = true, noop),
338
+ wasmModulesEnabled && dynamicImport(createBlob(moduleCheck.replace('x', createBlob(new Uint8Array([0,97,115,109,1,0,0,0]), 'application/wasm')))).then(() => supportsWasmModules = true, noop),
339
+ ]);
340
+
341
+ return new Promise(resolve => {
342
+ const iframe = document.createElement('iframe');
343
+ iframe.style.display = 'none';
344
+ iframe.setAttribute('nonce', nonce);
345
+ function cb ({ data }) {
346
+ const isFeatureDetectionMessage = Array.isArray(data) && data[0] === 'esms';
347
+ if (!isFeatureDetectionMessage) {
348
+ return;
349
+ }
350
+ supportsImportMaps = data[1];
351
+ supportsImportMeta = data[2];
352
+ supportsCssAssertions = data[3];
353
+ supportsJsonAssertions = data[4];
354
+ resolve();
355
+ document.head.removeChild(iframe);
356
+ window.removeEventListener('message', cb, false);
357
+ }
358
+ window.addEventListener('message', cb, false);
359
+
360
+ const importMapTest = `<script nonce=${nonce || ''}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${nonce}",innerText:\`{"imports":{"x":"\${b('')}"}}\`}));Promise.all([${
361
+ supportsImportMaps ? 'true,true' : `'x',b('${importMetaCheck}')`}, ${cssModulesEnabled ? `b('${cssModulesCheck}'.replace('x',b('','text/css')))` : 'false'}, ${
362
+ jsonModulesEnabled ? `b('${jsonModulesCheck}'.replace('x',b('{}','text/json')))` : 'false'}].map(x =>typeof x==='string'?import(x).then(x =>!!x,()=>false):x)).then(a=>parent.postMessage(['esms'].concat(a),'*'))<${''}/script>`;
363
+
364
+ // Safari will call onload eagerly on head injection, but we don't want the Wechat
365
+ // path to trigger before setting srcdoc, therefore we track the timing
366
+ let readyForOnload = false, onloadCalledWhileNotReady = false;
367
+ function doOnload () {
368
+ if (!readyForOnload) {
369
+ onloadCalledWhileNotReady = true;
370
+ return;
371
+ }
372
+ // WeChat browser doesn't support setting srcdoc scripts
373
+ // But iframe sandboxes don't support contentDocument so we do this as a fallback
374
+ const doc = iframe.contentDocument;
375
+ if (doc && doc.head.childNodes.length === 0) {
376
+ const s = doc.createElement('script');
377
+ if (nonce)
378
+ s.setAttribute('nonce', nonce);
379
+ s.innerHTML = importMapTest.slice(15 + (nonce ? nonce.length : 0), -9);
380
+ doc.head.appendChild(s);
381
+ }
382
+ }
383
+
384
+ iframe.onload = doOnload;
385
+ // WeChat browser requires append before setting srcdoc
386
+ document.head.appendChild(iframe);
387
+
388
+ // setting srcdoc is not supported in React native webviews on iOS
389
+ // setting src to a blob URL results in a navigation event in webviews
390
+ // document.write gives usability warnings
391
+ readyForOnload = true;
392
+ if ('srcdoc' in iframe)
393
+ iframe.srcdoc = importMapTest;
394
+ else
395
+ iframe.contentDocument.write(importMapTest);
396
+ // retrigger onload for Safari only if necessary
397
+ if (onloadCalledWhileNotReady) doOnload();
398
+ });
399
+ });
400
+
401
+ /* es-module-lexer 1.4.1 */
402
+ let e,a,r,i=2<<19;const s=1===new Uint8Array(new Uint16Array([1]).buffer)[0]?function(e,a){const r=e.length;let i=0;for(;i<r;)a[i]=e.charCodeAt(i++);}:function(e,a){const r=e.length;let i=0;for(;i<r;){const r=e.charCodeAt(i);a[i++]=(255&r)<<8|r>>>8;}},t="xportmportlassetaromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileforifcatcfinallels";let f,c$1,n;function parse(l,k="@"){f=l,c$1=k;const u=2*f.length+(2<<18);if(u>i||!e){for(;u>i;)i*=2;a=new ArrayBuffer(i),s(t,new Uint16Array(a,16,105)),e=function(e,a,r){"use asm";var i=new e.Int8Array(r),s=new e.Int16Array(r),t=new e.Int32Array(r),f=new e.Uint8Array(r),c=new e.Uint16Array(r),n=1024;function b(){var e=0,a=0,r=0,f=0,b=0,u=0;u=n;n=n+10240|0;i[796]=1;i[795]=0;s[395]=0;s[396]=0;t[67]=t[2];i[797]=0;t[66]=0;i[794]=0;t[68]=u+2048;t[69]=u;i[798]=0;e=(t[3]|0)+-2|0;t[70]=e;a=e+(t[64]<<1)|0;t[71]=a;e:while(1){r=e+2|0;t[70]=r;if(e>>>0>=a>>>0){b=18;break}a:do{switch(s[r>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((s[396]|0)==0?H(r)|0:0)?(m(e+4|0,16,10)|0)==0:0)?(l(),(i[796]|0)==0):0){b=9;break e}else b=17;break}case 105:{if(H(r)|0?(m(e+4|0,26,10)|0)==0:0){k();b=17;}else b=17;break}case 59:{b=17;break}case 47:switch(s[e+4>>1]|0){case 47:{P();break a}case 42:{y(1);break a}default:{b=16;break e}}default:{b=16;break e}}}while(0);if((b|0)==17){b=0;t[67]=t[70];}e=t[70]|0;a=t[71]|0;}if((b|0)==9){e=t[70]|0;t[67]=e;b=19;}else if((b|0)==16){i[796]=0;t[70]=e;b=19;}else if((b|0)==18)if(!(i[794]|0)){e=r;b=19;}else e=0;do{if((b|0)==19){e:while(1){a=e+2|0;t[70]=a;if(e>>>0>=(t[71]|0)>>>0){b=82;break}a:do{switch(s[a>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((s[396]|0)==0?H(a)|0:0)?(m(e+4|0,16,10)|0)==0:0){l();b=81;}else b=81;break}case 105:{if(H(a)|0?(m(e+4|0,26,10)|0)==0:0){k();b=81;}else b=81;break}case 99:{if((H(a)|0?(m(e+4|0,36,8)|0)==0:0)?V(s[e+12>>1]|0)|0:0){i[798]=1;b=81;}else b=81;break}case 40:{f=t[68]|0;a=s[396]|0;b=a&65535;t[f+(b<<3)>>2]=1;r=t[67]|0;s[396]=a+1<<16>>16;t[f+(b<<3)+4>>2]=r;b=81;break}case 41:{a=s[396]|0;if(!(a<<16>>16)){b=36;break e}b=a+-1<<16>>16;s[396]=b;f=s[395]|0;a=f&65535;if(f<<16>>16!=0?(t[(t[68]|0)+((b&65535)<<3)>>2]|0)==5:0){a=t[(t[69]|0)+(a+-1<<2)>>2]|0;r=a+4|0;if(!(t[r>>2]|0))t[r>>2]=(t[67]|0)+2;t[a+12>>2]=e+4;s[395]=f+-1<<16>>16;b=81;}else b=81;break}case 123:{b=t[67]|0;f=t[61]|0;e=b;do{if((s[b>>1]|0)==41&(f|0)!=0?(t[f+4>>2]|0)==(b|0):0){a=t[62]|0;t[61]=a;if(!a){t[57]=0;break}else {t[a+28>>2]=0;break}}}while(0);f=t[68]|0;r=s[396]|0;b=r&65535;t[f+(b<<3)>>2]=(i[798]|0)==0?2:6;s[396]=r+1<<16>>16;t[f+(b<<3)+4>>2]=e;i[798]=0;b=81;break}case 125:{e=s[396]|0;if(!(e<<16>>16)){b=49;break e}f=t[68]|0;b=e+-1<<16>>16;s[396]=b;if((t[f+((b&65535)<<3)>>2]|0)==4){h();b=81;}else b=81;break}case 39:{d(39);b=81;break}case 34:{d(34);b=81;break}case 47:switch(s[e+4>>1]|0){case 47:{P();break a}case 42:{y(1);break a}default:{e=t[67]|0;f=s[e>>1]|0;r:do{if(!(U(f)|0)){switch(f<<16>>16){case 41:if(D(t[(t[68]|0)+(c[396]<<3)+4>>2]|0)|0){b=69;break r}else {b=66;break r}case 125:break;default:{b=66;break r}}a=t[68]|0;r=c[396]|0;if(!(p(t[a+(r<<3)+4>>2]|0)|0)?(t[a+(r<<3)>>2]|0)!=6:0)b=66;else b=69;}else switch(f<<16>>16){case 46:if(((s[e+-2>>1]|0)+-48&65535)<10){b=66;break r}else {b=69;break r}case 43:if((s[e+-2>>1]|0)==43){b=66;break r}else {b=69;break r}case 45:if((s[e+-2>>1]|0)==45){b=66;break r}else {b=69;break r}default:{b=69;break r}}}while(0);r:do{if((b|0)==66){b=0;if(!(o(e)|0)){switch(f<<16>>16){case 0:{b=69;break r}case 47:{if(i[797]|0){b=69;break r}break}default:{}}r=t[3]|0;a=f;do{if(e>>>0<=r>>>0)break;e=e+-2|0;t[67]=e;a=s[e>>1]|0;}while(!(E(a)|0));if(F(a)|0){do{if(e>>>0<=r>>>0)break;e=e+-2|0;t[67]=e;}while(F(s[e>>1]|0)|0);if(j(e)|0){g();i[797]=0;b=81;break a}else e=1;}else e=1;}else b=69;}}while(0);if((b|0)==69){g();e=0;}i[797]=e;b=81;break a}}case 96:{f=t[68]|0;r=s[396]|0;b=r&65535;t[f+(b<<3)+4>>2]=t[67];s[396]=r+1<<16>>16;t[f+(b<<3)>>2]=3;h();b=81;break}default:b=81;}}while(0);if((b|0)==81){b=0;t[67]=t[70];}e=t[70]|0;}if((b|0)==36){T();e=0;break}else if((b|0)==49){T();e=0;break}else if((b|0)==82){e=(i[794]|0)==0?(s[395]|s[396])<<16>>16==0:0;break}}}while(0);n=u;return e|0}function l(){var e=0,a=0,r=0,f=0,c=0,n=0,b=0,l=0,k=0,o=0,h=0,v=0,C=0,g=0;l=t[70]|0;k=t[63]|0;g=l+12|0;t[70]=g;r=w(1)|0;e=t[70]|0;if(!((e|0)==(g|0)?!(I(r)|0):0))C=3;e:do{if((C|0)==3){a:do{switch(r<<16>>16){case 123:{t[70]=e+2;e=w(1)|0;a=t[70]|0;while(1){if(W(e)|0){d(e);e=(t[70]|0)+2|0;t[70]=e;}else {q(e)|0;e=t[70]|0;}w(1)|0;e=A(a,e)|0;if(e<<16>>16==44){t[70]=(t[70]|0)+2;e=w(1)|0;}if(e<<16>>16==125){C=15;break}g=a;a=t[70]|0;if((a|0)==(g|0)){C=12;break}if(a>>>0>(t[71]|0)>>>0){C=14;break}}if((C|0)==12){T();break e}else if((C|0)==14){T();break e}else if((C|0)==15){i[795]=1;t[70]=(t[70]|0)+2;break a}break}case 42:{t[70]=e+2;w(1)|0;g=t[70]|0;A(g,g)|0;break}default:{i[796]=0;switch(r<<16>>16){case 100:{l=e+14|0;t[70]=l;switch((w(1)|0)<<16>>16){case 97:{a=t[70]|0;if((m(a+2|0,56,8)|0)==0?(c=a+10|0,F(s[c>>1]|0)|0):0){t[70]=c;w(0)|0;C=22;}break}case 102:{C=22;break}case 99:{a=t[70]|0;if(((m(a+2|0,36,8)|0)==0?(f=a+10|0,g=s[f>>1]|0,V(g)|0|g<<16>>16==123):0)?(t[70]=f,n=w(1)|0,n<<16>>16!=123):0){v=n;C=31;}break}default:{}}r:do{if((C|0)==22?(b=t[70]|0,(m(b+2|0,64,14)|0)==0):0){r=b+16|0;a=s[r>>1]|0;if(!(V(a)|0))switch(a<<16>>16){case 40:case 42:break;default:break r}t[70]=r;a=w(1)|0;if(a<<16>>16==42){t[70]=(t[70]|0)+2;a=w(1)|0;}if(a<<16>>16!=40){v=a;C=31;}}}while(0);if((C|0)==31?(o=t[70]|0,q(v)|0,h=t[70]|0,h>>>0>o>>>0):0){O(e,l,o,h);t[70]=(t[70]|0)+-2;break e}O(e,l,0,0);t[70]=e+12;break e}case 97:{t[70]=e+10;w(0)|0;e=t[70]|0;C=35;break}case 102:{C=35;break}case 99:{if((m(e+2|0,36,8)|0)==0?(a=e+10|0,E(s[a>>1]|0)|0):0){t[70]=a;g=w(1)|0;C=t[70]|0;q(g)|0;g=t[70]|0;O(C,g,C,g);t[70]=(t[70]|0)+-2;break e}e=e+4|0;t[70]=e;break}case 108:case 118:break;default:break e}if((C|0)==35){t[70]=e+16;e=w(1)|0;if(e<<16>>16==42){t[70]=(t[70]|0)+2;e=w(1)|0;}C=t[70]|0;q(e)|0;g=t[70]|0;O(C,g,C,g);t[70]=(t[70]|0)+-2;break e}t[70]=e+6;i[796]=0;r=w(1)|0;e=t[70]|0;r=(q(r)|0|32)<<16>>16==123;f=t[70]|0;if(r){t[70]=f+2;g=w(1)|0;e=t[70]|0;q(g)|0;}r:while(1){a=t[70]|0;if((a|0)==(e|0))break;O(e,a,e,a);a=w(1)|0;if(r)switch(a<<16>>16){case 93:case 125:break e;default:{}}e=t[70]|0;if(a<<16>>16!=44){C=51;break}t[70]=e+2;a=w(1)|0;e=t[70]|0;switch(a<<16>>16){case 91:case 123:{C=51;break r}default:{}}q(a)|0;}if((C|0)==51)t[70]=e+-2;if(!r)break e;t[70]=f+-2;break e}}}while(0);g=(w(1)|0)<<16>>16==102;e=t[70]|0;if(g?(m(e+2|0,50,6)|0)==0:0){t[70]=e+8;u(l,w(1)|0);e=(k|0)==0?232:k+16|0;while(1){e=t[e>>2]|0;if(!e)break e;t[e+12>>2]=0;t[e+8>>2]=0;e=e+16|0;}}t[70]=e+-2;}}while(0);return}function k(){var e=0,a=0,r=0,f=0,c=0,n=0;c=t[70]|0;e=c+12|0;t[70]=e;e:do{switch((w(1)|0)<<16>>16){case 40:{a=t[68]|0;n=s[396]|0;r=n&65535;t[a+(r<<3)>>2]=5;e=t[70]|0;s[396]=n+1<<16>>16;t[a+(r<<3)+4>>2]=e;if((s[t[67]>>1]|0)!=46){t[70]=e+2;n=w(1)|0;v(c,t[70]|0,0,e);a=t[61]|0;r=t[69]|0;c=s[395]|0;s[395]=c+1<<16>>16;t[r+((c&65535)<<2)>>2]=a;switch(n<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{t[70]=(t[70]|0)+-2;break e}}e=(t[70]|0)+2|0;t[70]=e;switch((w(1)|0)<<16>>16){case 44:{t[70]=(t[70]|0)+2;w(1)|0;c=t[61]|0;t[c+4>>2]=e;n=t[70]|0;t[c+16>>2]=n;i[c+24>>0]=1;t[70]=n+-2;break e}case 41:{s[396]=(s[396]|0)+-1<<16>>16;n=t[61]|0;t[n+4>>2]=e;t[n+12>>2]=(t[70]|0)+2;i[n+24>>0]=1;s[395]=(s[395]|0)+-1<<16>>16;break e}default:{t[70]=(t[70]|0)+-2;break e}}}break}case 46:{t[70]=(t[70]|0)+2;if((w(1)|0)<<16>>16==109?(a=t[70]|0,(m(a+2|0,44,6)|0)==0):0){e=t[67]|0;if(!(G(e)|0)?(s[e>>1]|0)==46:0)break e;v(c,c,a+8|0,2);}break}case 42:case 39:case 34:{f=18;break}case 123:{e=t[70]|0;if(s[396]|0){t[70]=e+-2;break e}while(1){if(e>>>0>=(t[71]|0)>>>0)break;e=w(1)|0;if(!(W(e)|0)){if(e<<16>>16==125){f=33;break}}else d(e);e=(t[70]|0)+2|0;t[70]=e;}if((f|0)==33)t[70]=(t[70]|0)+2;n=(w(1)|0)<<16>>16==102;e=t[70]|0;if(n?m(e+2|0,50,6)|0:0){T();break e}t[70]=e+8;e=w(1)|0;if(W(e)|0){u(c,e);break e}else {T();break e}}default:if((t[70]|0)==(e|0))t[70]=c+10;else f=18;}}while(0);do{if((f|0)==18){if(s[396]|0){t[70]=(t[70]|0)+-2;break}e=t[71]|0;a=t[70]|0;while(1){if(a>>>0>=e>>>0){f=25;break}r=s[a>>1]|0;if(W(r)|0){f=23;break}n=a+2|0;t[70]=n;a=n;}if((f|0)==23){u(c,r);break}else if((f|0)==25){T();break}}}while(0);return}function u(e,a){e=e|0;a=a|0;var r=0,i=0;r=(t[70]|0)+2|0;switch(a<<16>>16){case 39:{d(39);i=5;break}case 34:{d(34);i=5;break}default:T();}do{if((i|0)==5){v(e,r,t[70]|0,1);t[70]=(t[70]|0)+2;a=w(0)|0;e=a<<16>>16==97;if(e){r=t[70]|0;if(m(r+2|0,78,10)|0)i=11;}else {r=t[70]|0;if(!(((a<<16>>16==119?(s[r+2>>1]|0)==105:0)?(s[r+4>>1]|0)==116:0)?(s[r+6>>1]|0)==104:0))i=11;}if((i|0)==11){t[70]=r+-2;break}t[70]=r+((e?6:4)<<1);if((w(1)|0)<<16>>16!=123){t[70]=r;break}e=t[70]|0;a=e;e:while(1){t[70]=a+2;a=w(1)|0;switch(a<<16>>16){case 39:{d(39);t[70]=(t[70]|0)+2;a=w(1)|0;break}case 34:{d(34);t[70]=(t[70]|0)+2;a=w(1)|0;break}default:a=q(a)|0;}if(a<<16>>16!=58){i=20;break}t[70]=(t[70]|0)+2;switch((w(1)|0)<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{i=24;break e}}t[70]=(t[70]|0)+2;switch((w(1)|0)<<16>>16){case 125:{i=29;break e}case 44:break;default:{i=28;break e}}t[70]=(t[70]|0)+2;if((w(1)|0)<<16>>16==125){i=29;break}a=t[70]|0;}if((i|0)==20){t[70]=r;break}else if((i|0)==24){t[70]=r;break}else if((i|0)==28){t[70]=r;break}else if((i|0)==29){i=t[61]|0;t[i+16>>2]=e;t[i+12>>2]=(t[70]|0)+2;break}}}while(0);return}function o(e){e=e|0;e:do{switch(s[e>>1]|0){case 100:switch(s[e+-2>>1]|0){case 105:{e=$(e+-4|0,88,2)|0;break e}case 108:{e=$(e+-4|0,92,3)|0;break e}default:{e=0;break e}}case 101:switch(s[e+-2>>1]|0){case 115:switch(s[e+-4>>1]|0){case 108:{e=B(e+-6|0,101)|0;break e}case 97:{e=B(e+-6|0,99)|0;break e}default:{e=0;break e}}case 116:{e=$(e+-4|0,98,4)|0;break e}case 117:{e=$(e+-4|0,106,6)|0;break e}default:{e=0;break e}}case 102:{if((s[e+-2>>1]|0)==111?(s[e+-4>>1]|0)==101:0)switch(s[e+-6>>1]|0){case 99:{e=$(e+-8|0,118,6)|0;break e}case 112:{e=$(e+-8|0,130,2)|0;break e}default:{e=0;break e}}else e=0;break}case 107:{e=$(e+-2|0,134,4)|0;break}case 110:{e=e+-2|0;if(B(e,105)|0)e=1;else e=$(e,142,5)|0;break}case 111:{e=B(e+-2|0,100)|0;break}case 114:{e=$(e+-2|0,152,7)|0;break}case 116:{e=$(e+-2|0,166,4)|0;break}case 119:switch(s[e+-2>>1]|0){case 101:{e=B(e+-4|0,110)|0;break e}case 111:{e=$(e+-4|0,174,3)|0;break e}default:{e=0;break e}}default:e=0;}}while(0);return e|0}function h(){var e=0,a=0,r=0,i=0;a=t[71]|0;r=t[70]|0;e:while(1){e=r+2|0;if(r>>>0>=a>>>0){a=10;break}switch(s[e>>1]|0){case 96:{a=7;break e}case 36:{if((s[r+4>>1]|0)==123){a=6;break e}break}case 92:{e=r+4|0;break}default:{}}r=e;}if((a|0)==6){e=r+4|0;t[70]=e;a=t[68]|0;i=s[396]|0;r=i&65535;t[a+(r<<3)>>2]=4;s[396]=i+1<<16>>16;t[a+(r<<3)+4>>2]=e;}else if((a|0)==7){t[70]=e;r=t[68]|0;i=(s[396]|0)+-1<<16>>16;s[396]=i;if((t[r+((i&65535)<<3)>>2]|0)!=3)T();}else if((a|0)==10){t[70]=e;T();}return}function w(e){e=e|0;var a=0,r=0,i=0;r=t[70]|0;e:do{a=s[r>>1]|0;a:do{if(a<<16>>16!=47)if(e)if(V(a)|0)break;else break e;else if(F(a)|0)break;else break e;else switch(s[r+2>>1]|0){case 47:{P();break a}case 42:{y(e);break a}default:{a=47;break e}}}while(0);i=t[70]|0;r=i+2|0;t[70]=r;}while(i>>>0<(t[71]|0)>>>0);return a|0}function d(e){e=e|0;var a=0,r=0,i=0,f=0;f=t[71]|0;a=t[70]|0;while(1){i=a+2|0;if(a>>>0>=f>>>0){a=9;break}r=s[i>>1]|0;if(r<<16>>16==e<<16>>16){a=10;break}if(r<<16>>16==92){r=a+4|0;if((s[r>>1]|0)==13){a=a+6|0;a=(s[a>>1]|0)==10?a:r;}else a=r;}else if(Z(r)|0){a=9;break}else a=i;}if((a|0)==9){t[70]=i;T();}else if((a|0)==10)t[70]=i;return}function v(e,a,r,s){e=e|0;a=a|0;r=r|0;s=s|0;var f=0,c=0;f=t[65]|0;t[65]=f+32;c=t[61]|0;t[((c|0)==0?228:c+28|0)>>2]=f;t[62]=c;t[61]=f;t[f+8>>2]=e;if(2==(s|0))e=r;else e=1==(s|0)?r+2|0:0;t[f+12>>2]=e;t[f>>2]=a;t[f+4>>2]=r;t[f+16>>2]=0;t[f+20>>2]=s;c=1==(s|0);i[f+24>>0]=c&1;t[f+28>>2]=0;if(c|2==(s|0))i[795]=1;return}function A(e,a){e=e|0;a=a|0;var r=0,i=0,f=0,c=0;r=t[70]|0;i=s[r>>1]|0;c=(e|0)==(a|0);f=c?0:e;c=c?0:a;if(i<<16>>16==97){t[70]=r+4;r=w(1)|0;e=t[70]|0;if(W(r)|0){d(r);a=(t[70]|0)+2|0;t[70]=a;}else {q(r)|0;a=t[70]|0;}i=w(1)|0;r=t[70]|0;}if((r|0)!=(e|0))O(e,a,f,c);return i|0}function C(){var e=0,a=0,r=0;r=t[71]|0;a=t[70]|0;e:while(1){e=a+2|0;if(a>>>0>=r>>>0){a=6;break}switch(s[e>>1]|0){case 13:case 10:{a=6;break e}case 93:{a=7;break e}case 92:{e=a+4|0;break}default:{}}a=e;}if((a|0)==6){t[70]=e;T();e=0;}else if((a|0)==7){t[70]=e;e=93;}return e|0}function g(){var e=0,a=0,r=0;e:while(1){e=t[70]|0;a=e+2|0;t[70]=a;if(e>>>0>=(t[71]|0)>>>0){r=7;break}switch(s[a>>1]|0){case 13:case 10:{r=7;break e}case 47:break e;case 91:{C()|0;break}case 92:{t[70]=e+4;break}default:{}}}if((r|0)==7)T();return}function p(e){e=e|0;switch(s[e>>1]|0){case 62:{e=(s[e+-2>>1]|0)==61;break}case 41:case 59:{e=1;break}case 104:{e=$(e+-2|0,200,4)|0;break}case 121:{e=$(e+-2|0,208,6)|0;break}case 101:{e=$(e+-2|0,220,3)|0;break}default:e=0;}return e|0}function y(e){e=e|0;var a=0,r=0,i=0,f=0,c=0;f=(t[70]|0)+2|0;t[70]=f;r=t[71]|0;while(1){a=f+2|0;if(f>>>0>=r>>>0)break;i=s[a>>1]|0;if(!e?Z(i)|0:0)break;if(i<<16>>16==42?(s[f+4>>1]|0)==47:0){c=8;break}f=a;}if((c|0)==8){t[70]=a;a=f+4|0;}t[70]=a;return}function m(e,a,r){e=e|0;a=a|0;r=r|0;var s=0,t=0;e:do{if(!r)e=0;else {while(1){s=i[e>>0]|0;t=i[a>>0]|0;if(s<<24>>24!=t<<24>>24)break;r=r+-1|0;if(!r){e=0;break e}else {e=e+1|0;a=a+1|0;}}e=(s&255)-(t&255)|0;}}while(0);return e|0}function I(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:{e=1;break}default:if((e&-8)<<16>>16==40|(e+-58&65535)<6)e=1;else {switch(e<<16>>16){case 91:case 93:case 94:{e=1;break e}default:{}}e=(e+-123&65535)<4;}}}while(0);return e|0}function U(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:break;default:if(!((e+-58&65535)<6|(e+-40&65535)<7&e<<16>>16!=41)){switch(e<<16>>16){case 91:case 94:break e;default:{}}return e<<16>>16!=125&(e+-123&65535)<4|0}}}while(0);return 1}function x(e){e=e|0;var a=0;a=s[e>>1]|0;e:do{if((a+-9&65535)>=5){switch(a<<16>>16){case 160:case 32:{a=1;break e}default:{}}if(I(a)|0)return a<<16>>16!=46|(G(e)|0)|0;else a=0;}else a=1;}while(0);return a|0}function S(e){e=e|0;var a=0,r=0,i=0,f=0;r=n;n=n+16|0;i=r;t[i>>2]=0;t[64]=e;a=t[3]|0;f=a+(e<<1)|0;e=f+2|0;s[f>>1]=0;t[i>>2]=e;t[65]=e;t[57]=0;t[61]=0;t[59]=0;t[58]=0;t[63]=0;t[60]=0;n=r;return a|0}function O(e,a,r,s){e=e|0;a=a|0;r=r|0;s=s|0;var f=0,c=0;f=t[65]|0;t[65]=f+20;c=t[63]|0;t[((c|0)==0?232:c+16|0)>>2]=f;t[63]=f;t[f>>2]=e;t[f+4>>2]=a;t[f+8>>2]=r;t[f+12>>2]=s;t[f+16>>2]=0;i[795]=1;return}function $(e,a,r){e=e|0;a=a|0;r=r|0;var i=0,s=0;i=e+(0-r<<1)|0;s=i+2|0;e=t[3]|0;if(s>>>0>=e>>>0?(m(s,a,r<<1)|0)==0:0)if((s|0)==(e|0))e=1;else e=x(i)|0;else e=0;return e|0}function j(e){e=e|0;switch(s[e>>1]|0){case 107:{e=$(e+-2|0,134,4)|0;break}case 101:{if((s[e+-2>>1]|0)==117)e=$(e+-4|0,106,6)|0;else e=0;break}default:e=0;}return e|0}function B(e,a){e=e|0;a=a|0;var r=0;r=t[3]|0;if(r>>>0<=e>>>0?(s[e>>1]|0)==a<<16>>16:0)if((r|0)==(e|0))r=1;else r=E(s[e+-2>>1]|0)|0;else r=0;return r|0}function E(e){e=e|0;e:do{if((e+-9&65535)<5)e=1;else {switch(e<<16>>16){case 32:case 160:{e=1;break e}default:{}}e=e<<16>>16!=46&(I(e)|0);}}while(0);return e|0}function P(){var e=0,a=0,r=0;e=t[71]|0;r=t[70]|0;e:while(1){a=r+2|0;if(r>>>0>=e>>>0)break;switch(s[a>>1]|0){case 13:case 10:break e;default:r=a;}}t[70]=a;return}function q(e){e=e|0;while(1){if(V(e)|0)break;if(I(e)|0)break;e=(t[70]|0)+2|0;t[70]=e;e=s[e>>1]|0;if(!(e<<16>>16)){e=0;break}}return e|0}function z(){var e=0;e=t[(t[59]|0)+20>>2]|0;switch(e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(t[3]|0)>>1;}return e|0}function D(e){e=e|0;if(!($(e,180,5)|0)?!($(e,190,3)|0):0)e=$(e,196,2)|0;else e=1;return e|0}function F(e){e=e|0;switch(e<<16>>16){case 160:case 32:case 12:case 11:case 9:{e=1;break}default:e=0;}return e|0}function G(e){e=e|0;if((s[e>>1]|0)==46?(s[e+-2>>1]|0)==46:0)e=(s[e+-4>>1]|0)==46;else e=0;return e|0}function H(e){e=e|0;if((t[3]|0)==(e|0))e=1;else e=x(e+-2|0)|0;return e|0}function J(){var e=0;e=t[(t[60]|0)+12>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function K(){var e=0;e=t[(t[59]|0)+12>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function L(){var e=0;e=t[(t[60]|0)+8>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function M(){var e=0;e=t[(t[59]|0)+16>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function N(){var e=0;e=t[(t[59]|0)+4>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function Q(){var e=0;e=t[59]|0;e=t[((e|0)==0?228:e+28|0)>>2]|0;t[59]=e;return (e|0)!=0|0}function R(){var e=0;e=t[60]|0;e=t[((e|0)==0?232:e+16|0)>>2]|0;t[60]=e;return (e|0)!=0|0}function T(){i[794]=1;t[66]=(t[70]|0)-(t[3]|0)>>1;t[70]=(t[71]|0)+2;return}function V(e){e=e|0;return (e|128)<<16>>16==160|(e+-9&65535)<5|0}function W(e){e=e|0;return e<<16>>16==39|e<<16>>16==34|0}function X(){return (t[(t[59]|0)+8>>2]|0)-(t[3]|0)>>1|0}function Y(){return (t[(t[60]|0)+4>>2]|0)-(t[3]|0)>>1|0}function Z(e){e=e|0;return e<<16>>16==13|e<<16>>16==10|0}function _(){return (t[t[59]>>2]|0)-(t[3]|0)>>1|0}function ee(){return (t[t[60]>>2]|0)-(t[3]|0)>>1|0}function ae(){return f[(t[59]|0)+24>>0]|0|0}function re(e){e=e|0;t[3]=e;return}function ie(){return (i[795]|0)!=0|0}function se(){return (i[796]|0)!=0|0}function te(){return t[66]|0}function fe(e){e=e|0;n=e+992+15&-16;return 992}return {su:fe,ai:M,e:te,ee:Y,ele:J,els:L,es:ee,f:se,id:z,ie:N,ip:ae,is:_,ms:ie,p:b,re:R,ri:Q,sa:S,se:K,ses:re,ss:X}}("undefined"!=typeof self?self:commonjsGlobal,{},a),r=e.su(i-(2<<17));}const h=f.length+1;e.ses(r),e.sa(h-1),s(f,new Uint16Array(a,r,h)),e.p()||(n=e.e(),o());const w=[],d=[];for(;e.ri();){const a=e.is(),r=e.ie(),i=e.ai(),s=e.id(),t=e.ss(),c=e.se();let n;e.ip()&&(n=b(-1===s?a:a+1,f.charCodeAt(-1===s?a-1:a))),w.push({n:n,s:a,e:r,ss:t,se:c,d:s,a:i});}for(;e.re();){const a=e.es(),r=e.ee(),i=e.els(),s=e.ele(),t=f.charCodeAt(a),c=i>=0?f.charCodeAt(i):-1;d.push({s:a,e:r,ls:i,le:s,n:34===t||39===t?b(a+1,t):f.slice(a,r),ln:i<0?void 0:34===c||39===c?b(i+1,c):f.slice(i,s)});}return [w,d,!!e.f(),!!e.ms()]}function b(e,a){n=e;let r="",i=n;for(;;){n>=f.length&&o();const e=f.charCodeAt(n);if(e===a)break;92===e?(r+=f.slice(i,n),r+=l(),i=n):(8232===e||8233===e||u(e)&&o(),++n);}return r+=f.slice(i,n++),r}function l(){let e=f.charCodeAt(++n);switch(++n,e){case 110:return "\n";case 114:return "\r";case 120:return String.fromCharCode(k(2));case 117:return function(){const e=f.charCodeAt(n);let a;123===e?(++n,a=k(f.indexOf("}",n)-n),++n,a>1114111&&o()):a=k(4);return a<=65535?String.fromCharCode(a):(a-=65536,String.fromCharCode(55296+(a>>10),56320+(1023&a)))}();case 116:return "\t";case 98:return "\b";case 118:return "\v";case 102:return "\f";case 13:10===f.charCodeAt(n)&&++n;case 10:return "";case 56:case 57:o();default:if(e>=48&&e<=55){let a=f.substr(n-1,3).match(/^[0-7]+/)[0],r=parseInt(a,8);return r>255&&(a=a.slice(0,-1),r=parseInt(a,8)),n+=a.length-1,e=f.charCodeAt(n),"0"===a&&56!==e&&57!==e||o(),String.fromCharCode(r)}return u(e)?"":String.fromCharCode(e)}}function k(e){const a=n;let r=0,i=0;for(let a=0;a<e;++a,++n){let e,s=f.charCodeAt(n);if(95!==s){if(s>=97)e=s-97+10;else if(s>=65)e=s-65+10;else {if(!(s>=48&&s<=57))break;e=s-48;}if(e>=16)break;i=s,r=16*r+e;}else 95!==i&&0!==a||o(),i=s;}return 95!==i&&n-a===e||o(),r}function u(e){return 13===e||10===e}function o(){throw Object.assign(Error(`Parse error ${c$1}:${f.slice(0,n).split("\n").length}:${n-f.lastIndexOf("\n",n-1)}`),{idx:n})}
403
+
404
+ async function _resolve (id, parentUrl) {
405
+ const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl) || asURL(id);
406
+ return {
407
+ r: resolveImportMap(importMap, urlResolved || id, parentUrl) || throwUnresolved(id, parentUrl),
408
+ // b = bare specifier
409
+ b: !urlResolved && !asURL(id)
410
+ };
411
+ }
412
+
413
+ const resolve = resolveHook ? async (id, parentUrl) => {
414
+ let result = resolveHook(id, parentUrl, defaultResolve);
415
+ // will be deprecated in next major
416
+ if (result && result.then)
417
+ result = await result;
418
+ return result ? { r: result, b: !resolveIfNotPlainOrUrl(id, parentUrl) && !asURL(id) } : _resolve(id, parentUrl);
419
+ } : _resolve;
420
+
421
+ // importShim('mod');
422
+ // importShim('mod', { opts });
423
+ // importShim('mod', { opts }, parentUrl);
424
+ // importShim('mod', parentUrl);
425
+ async function importShim (id, ...args) {
426
+ // parentUrl if present will be the last argument
427
+ let parentUrl = args[args.length - 1];
428
+ if (typeof parentUrl !== 'string')
429
+ parentUrl = baseUrl;
430
+ // needed for shim check
431
+ await initPromise;
432
+ if (importHook) await importHook(id, typeof args[1] !== 'string' ? args[1] : {}, parentUrl);
433
+ if (acceptingImportMaps || shimMode || !baselinePassthrough) {
434
+ if (hasDocument)
435
+ processScriptsAndPreloads(true);
436
+ if (!shimMode)
437
+ acceptingImportMaps = false;
438
+ }
439
+ await importMapPromise;
440
+ return topLevelLoad((await resolve(id, parentUrl)).r, { credentials: 'same-origin' });
441
+ }
442
+
443
+ self.importShim = importShim;
444
+
445
+ function defaultResolve (id, parentUrl) {
446
+ return resolveImportMap(importMap, resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) || throwUnresolved(id, parentUrl);
447
+ }
448
+
449
+ function throwUnresolved (id, parentUrl) {
450
+ throw Error(`Unable to resolve specifier '${id}'${fromParent(parentUrl)}`);
451
+ }
452
+
453
+ const resolveSync = (id, parentUrl = baseUrl) => {
454
+ parentUrl = `${parentUrl}`;
455
+ const result = resolveHook && resolveHook(id, parentUrl, defaultResolve);
456
+ return result && !result.then ? result : defaultResolve(id, parentUrl);
457
+ };
458
+
459
+ function metaResolve (id, parentUrl = this.url) {
460
+ return resolveSync(id, parentUrl);
461
+ }
462
+
463
+ importShim.resolve = resolveSync;
464
+ importShim.getImportMap = () => JSON.parse(JSON.stringify(importMap));
465
+ importShim.addImportMap = importMapIn => {
466
+ if (!shimMode) throw new Error('Unsupported in polyfill mode.');
467
+ importMap = resolveAndComposeImportMap(importMapIn, baseUrl, importMap);
468
+ };
469
+
470
+ const registry = importShim._r = {};
471
+ importShim._w = {};
472
+
473
+ async function loadAll (load, seen) {
474
+ if (load.b || seen[load.u])
475
+ return;
476
+ seen[load.u] = 1;
477
+ await load.L;
478
+ await Promise.all(load.d.map(dep => loadAll(dep, seen)));
479
+ if (!load.n)
480
+ load.n = load.d.some(dep => dep.n);
481
+ }
482
+
483
+ let importMap = { imports: {}, scopes: {} };
484
+ let baselinePassthrough;
485
+
486
+ const initPromise = featureDetectionPromise.then(() => {
487
+ baselinePassthrough = esmsInitOptions.polyfillEnable !== true && supportsDynamicImport && supportsImportMeta && supportsImportMaps && (!jsonModulesEnabled || supportsJsonAssertions) && (!cssModulesEnabled || supportsCssAssertions) && (!wasmModulesEnabled || supportsWasmModules) && !importMapSrcOrLazy;
488
+ if (hasDocument) {
489
+ if (!supportsImportMaps) {
490
+ const supports = HTMLScriptElement.supports || (type => type === 'classic' || type === 'module');
491
+ HTMLScriptElement.supports = type => type === 'importmap' || supports(type);
492
+ }
493
+ if (shimMode || !baselinePassthrough) {
494
+ new MutationObserver(mutations => {
495
+ for (const mutation of mutations) {
496
+ if (mutation.type !== 'childList') continue;
497
+ for (const node of mutation.addedNodes) {
498
+ if (node.tagName === 'SCRIPT') {
499
+ if (node.type === (shimMode ? 'module-shim' : 'module'))
500
+ processScript(node, true);
501
+ if (node.type === (shimMode ? 'importmap-shim' : 'importmap'))
502
+ processImportMap(node, true);
503
+ }
504
+ else if (node.tagName === 'LINK' && node.rel === (shimMode ? 'modulepreload-shim' : 'modulepreload')) {
505
+ processPreload(node);
506
+ }
507
+ }
508
+ }
509
+ }).observe(document, {childList: true, subtree: true});
510
+ processScriptsAndPreloads();
511
+ if (document.readyState === 'complete') {
512
+ readyStateCompleteCheck();
513
+ }
514
+ else {
515
+ async function readyListener() {
516
+ await initPromise;
517
+ processScriptsAndPreloads();
518
+ if (document.readyState === 'complete') {
519
+ readyStateCompleteCheck();
520
+ document.removeEventListener('readystatechange', readyListener);
521
+ }
522
+ }
523
+ document.addEventListener('readystatechange', readyListener);
524
+ }
525
+ }
526
+ }
527
+ return undefined;
528
+ });
529
+ let importMapPromise = initPromise;
530
+ let firstPolyfillLoad = true;
531
+ let acceptingImportMaps = true;
532
+
533
+ async function topLevelLoad (url, fetchOpts, source, nativelyLoaded, lastStaticLoadPromise) {
534
+ if (!shimMode)
535
+ acceptingImportMaps = false;
536
+ await initPromise;
537
+ await importMapPromise;
538
+ if (importHook) await importHook(url, typeof fetchOpts !== 'string' ? fetchOpts : {}, '');
539
+ // early analysis opt-out - no need to even fetch if we have feature support
540
+ if (!shimMode && baselinePassthrough) {
541
+ // for polyfill case, only dynamic import needs a return value here, and dynamic import will never pass nativelyLoaded
542
+ if (nativelyLoaded)
543
+ return null;
544
+ await lastStaticLoadPromise;
545
+ return dynamicImport(source ? createBlob(source) : url, { errUrl: url || source });
546
+ }
547
+ const load = getOrCreateLoad(url, fetchOpts, null, source);
548
+ const seen = {};
549
+ await loadAll(load, seen);
550
+ lastLoad = undefined;
551
+ resolveDeps(load, seen);
552
+ await lastStaticLoadPromise;
553
+ if (source && !shimMode && !load.n) {
554
+ if (nativelyLoaded) return;
555
+ if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
556
+ return await dynamicImport(createBlob(source), { errUrl: source });
557
+ }
558
+ if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
559
+ onpolyfill();
560
+ firstPolyfillLoad = false;
561
+ }
562
+ const module = await dynamicImport(!shimMode && !load.n && nativelyLoaded ? load.u : load.b, { errUrl: load.u });
563
+ // if the top-level load is a shell, run its update function
564
+ if (load.s)
565
+ (await dynamicImport(load.s)).u$_(module);
566
+ if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
567
+ // when tla is supported, this should return the tla promise as an actual handle
568
+ // so readystate can still correspond to the sync subgraph exec completions
569
+ return module;
570
+ }
571
+
572
+ function revokeObjectURLs(registryKeys) {
573
+ let batch = 0;
574
+ const keysLength = registryKeys.length;
575
+ const schedule = self.requestIdleCallback ? self.requestIdleCallback : self.requestAnimationFrame;
576
+ schedule(cleanup);
577
+ function cleanup() {
578
+ const batchStartIndex = batch * 100;
579
+ if (batchStartIndex > keysLength) return
580
+ for (const key of registryKeys.slice(batchStartIndex, batchStartIndex + 100)) {
581
+ const load = registry[key];
582
+ if (load) URL.revokeObjectURL(load.b);
583
+ }
584
+ batch++;
585
+ schedule(cleanup);
586
+ }
587
+ }
588
+
589
+ function urlJsString (url) {
590
+ return `'${url.replace(/'/g, "\\'")}'`;
591
+ }
592
+
593
+ let lastLoad;
594
+ function resolveDeps (load, seen) {
595
+ if (load.b || !seen[load.u])
596
+ return;
597
+ seen[load.u] = 0;
598
+
599
+ for (const dep of load.d)
600
+ resolveDeps(dep, seen);
601
+
602
+ const [imports, exports] = load.a;
603
+
604
+ // "execution"
605
+ const source = load.S;
606
+
607
+ // edge doesnt execute sibling in order, so we fix this up by ensuring all previous executions are explicit dependencies
608
+ let resolvedSource = edge && lastLoad ? `import '${lastLoad}';` : '';
609
+
610
+ // once all deps have loaded we can inline the dependency resolution blobs
611
+ // and define this blob
612
+ let lastIndex = 0, depIndex = 0, dynamicImportEndStack = [];
613
+ function pushStringTo (originalIndex) {
614
+ while (dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) {
615
+ const dynamicImportEnd = dynamicImportEndStack.pop();
616
+ resolvedSource += `${source.slice(lastIndex, dynamicImportEnd)}, ${urlJsString(load.r)}`;
617
+ lastIndex = dynamicImportEnd;
618
+ }
619
+ resolvedSource += source.slice(lastIndex, originalIndex);
620
+ lastIndex = originalIndex;
621
+ }
622
+
623
+ for (const { s: start, ss: statementStart, se: statementEnd, d: dynamicImportIndex } of imports) {
624
+ // dependency source replacements
625
+ if (dynamicImportIndex === -1) {
626
+ let depLoad = load.d[depIndex++], blobUrl = depLoad.b, cycleShell = !blobUrl;
627
+ if (cycleShell) {
628
+ // circular shell creation
629
+ if (!(blobUrl = depLoad.s)) {
630
+ blobUrl = depLoad.s = createBlob(`export function u$_(m){${
631
+ depLoad.a[1].map(({ s, e }, i) => {
632
+ const q = depLoad.S[s] === '"' || depLoad.S[s] === "'";
633
+ return `e$_${i}=m${q ? `[` : '.'}${depLoad.S.slice(s, e)}${q ? `]` : ''}`;
634
+ }).join(',')
635
+ }}${
636
+ depLoad.a[1].length ? `let ${depLoad.a[1].map((_, i) => `e$_${i}`).join(',')};` : ''
637
+ }export {${
638
+ depLoad.a[1].map(({ s, e }, i) => `e$_${i} as ${depLoad.S.slice(s, e)}`).join(',')
639
+ }}\n//# sourceURL=${depLoad.r}?cycle`);
640
+ }
641
+ }
642
+
643
+ pushStringTo(start - 1);
644
+ resolvedSource += `/*${source.slice(start - 1, statementEnd)}*/${urlJsString(blobUrl)}`;
645
+
646
+ // circular shell execution
647
+ if (!cycleShell && depLoad.s) {
648
+ resolvedSource += `;import*as m$_${depIndex} from'${depLoad.b}';import{u$_ as u$_${depIndex}}from'${depLoad.s}';u$_${depIndex}(m$_${depIndex})`;
649
+ depLoad.s = undefined;
650
+ }
651
+ lastIndex = statementEnd;
652
+ }
653
+ // import.meta
654
+ else if (dynamicImportIndex === -2) {
655
+ load.m = { url: load.r, resolve: metaResolve };
656
+ metaHook(load.m, load.u);
657
+ pushStringTo(start);
658
+ resolvedSource += `importShim._r[${urlJsString(load.u)}].m`;
659
+ lastIndex = statementEnd;
660
+ }
661
+ // dynamic import
662
+ else {
663
+ pushStringTo(statementStart + 6);
664
+ resolvedSource += `Shim(`;
665
+ dynamicImportEndStack.push(statementEnd - 1);
666
+ lastIndex = start;
667
+ }
668
+ }
669
+
670
+ // support progressive cycle binding updates (try statement avoids tdz errors)
671
+ if (load.s)
672
+ resolvedSource += `\n;import{u$_}from'${load.s}';try{u$_({${exports.filter(e => e.ln).map(({ s, e, ln }) => `${source.slice(s, e)}:${ln}`).join(',')}})}catch(_){};\n`;
673
+
674
+ function pushSourceURL (commentPrefix, commentStart) {
675
+ const urlStart = commentStart + commentPrefix.length;
676
+ const commentEnd = source.indexOf('\n', urlStart);
677
+ const urlEnd = commentEnd !== -1 ? commentEnd : source.length;
678
+ pushStringTo(urlStart);
679
+ resolvedSource += new URL(source.slice(urlStart, urlEnd), load.r).href;
680
+ lastIndex = urlEnd;
681
+ }
682
+
683
+ let sourceURLCommentStart = source.lastIndexOf(sourceURLCommentPrefix);
684
+ let sourceMapURLCommentStart = source.lastIndexOf(sourceMapURLCommentPrefix);
685
+
686
+ // ignore sourceMap comments before already spliced code
687
+ if (sourceURLCommentStart < lastIndex) sourceURLCommentStart = -1;
688
+ if (sourceMapURLCommentStart < lastIndex) sourceMapURLCommentStart = -1;
689
+
690
+ // sourceURL first / only
691
+ if (sourceURLCommentStart !== -1 && (sourceMapURLCommentStart === -1 || sourceMapURLCommentStart > sourceURLCommentStart)) {
692
+ pushSourceURL(sourceURLCommentPrefix, sourceURLCommentStart);
693
+ }
694
+ // sourceMappingURL
695
+ if (sourceMapURLCommentStart !== -1) {
696
+ pushSourceURL(sourceMapURLCommentPrefix, sourceMapURLCommentStart);
697
+ // sourceURL last
698
+ if (sourceURLCommentStart !== -1 && (sourceURLCommentStart > sourceMapURLCommentStart))
699
+ pushSourceURL(sourceURLCommentPrefix, sourceURLCommentStart);
700
+ }
701
+
702
+ pushStringTo(source.length);
703
+
704
+ if (sourceURLCommentStart === -1)
705
+ resolvedSource += sourceURLCommentPrefix + load.r;
706
+
707
+ load.b = lastLoad = createBlob(resolvedSource);
708
+ load.S = undefined;
709
+ }
710
+
711
+ const sourceURLCommentPrefix = '\n//# sourceURL=';
712
+ const sourceMapURLCommentPrefix = '\n//# sourceMappingURL=';
713
+
714
+ const jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
715
+ const wasmContentType = /^(application)\/wasm(;|$)/;
716
+ const jsonContentType = /^(text|application)\/json(;|$)/;
717
+ const cssContentType = /^(text|application)\/css(;|$)/;
718
+
719
+ const cssUrlRegEx = /url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
720
+
721
+ // restrict in-flight fetches to a pool of 100
722
+ let p = [];
723
+ let c = 0;
724
+ function pushFetchPool () {
725
+ if (++c > 100)
726
+ return new Promise(r => p.push(r));
727
+ }
728
+ function popFetchPool () {
729
+ c--;
730
+ if (p.length)
731
+ p.shift()();
732
+ }
733
+
734
+ async function doFetch (url, fetchOpts, parent) {
735
+ if (enforceIntegrity && !fetchOpts.integrity)
736
+ throw Error(`No integrity for ${url}${fromParent(parent)}.`);
737
+ const poolQueue = pushFetchPool();
738
+ if (poolQueue) await poolQueue;
739
+ try {
740
+ var res = await fetchHook(url, fetchOpts);
741
+ }
742
+ catch (e) {
743
+ e.message = `Unable to fetch ${url}${fromParent(parent)} - see network log for details.\n` + e.message;
744
+ throw e;
745
+ }
746
+ finally {
747
+ popFetchPool();
748
+ }
749
+
750
+ if (!res.ok) {
751
+ const error = new TypeError(`${res.status} ${res.statusText} ${res.url}${fromParent(parent)}`);
752
+ error.response = res;
753
+ throw error;
754
+ }
755
+ return res;
756
+ }
757
+
758
+ async function fetchModule (url, fetchOpts, parent) {
759
+ const res = await doFetch(url, fetchOpts, parent);
760
+ const contentType = res.headers.get('content-type');
761
+ if (jsContentType.test(contentType))
762
+ return { r: res.url, s: await res.text(), t: 'js' };
763
+ else if (wasmContentType.test(contentType)) {
764
+ const module = importShim._w[url] = await WebAssembly.compileStreaming(res);
765
+ let s = '', i = 0, importObj = '';
766
+ for (const impt of WebAssembly.Module.imports(module)) {
767
+ s += `import * as impt${i} from '${impt.module}';\n`;
768
+ importObj += `'${impt.module}':impt${i++},`;
769
+ }
770
+ i = 0;
771
+ s += `const instance = await WebAssembly.instantiate(importShim._w['${url}'], {${importObj}});\n`;
772
+ for (const expt of WebAssembly.Module.exports(module)) {
773
+ s += `export const ${expt.name} = instance.exports['${expt.name}'];\n`;
774
+ }
775
+ return { r: res.url, s, t: 'wasm' };
776
+ }
777
+ else if (jsonContentType.test(contentType))
778
+ return { r: res.url, s: `export default ${await res.text()}`, t: 'json' };
779
+ else if (cssContentType.test(contentType)) {
780
+ return { r: res.url, s: `var s=new CSSStyleSheet();s.replaceSync(${
781
+ JSON.stringify((await res.text()).replace(cssUrlRegEx, (_match, quotes = '', relUrl1, relUrl2) => `url(${quotes}${resolveUrl(relUrl1 || relUrl2, url)}${quotes})`))
782
+ });export default s;`, t: 'css' };
783
+ }
784
+ else
785
+ throw Error(`Unsupported Content-Type "${contentType}" loading ${url}${fromParent(parent)}. Modules must be served with a valid MIME type like application/javascript.`);
786
+ }
787
+
788
+ function getOrCreateLoad (url, fetchOpts, parent, source) {
789
+ let load = registry[url];
790
+ if (load && !source)
791
+ return load;
792
+
793
+ load = {
794
+ // url
795
+ u: url,
796
+ // response url
797
+ r: source ? url : undefined,
798
+ // fetchPromise
799
+ f: undefined,
800
+ // source
801
+ S: undefined,
802
+ // linkPromise
803
+ L: undefined,
804
+ // analysis
805
+ a: undefined,
806
+ // deps
807
+ d: undefined,
808
+ // blobUrl
809
+ b: undefined,
810
+ // shellUrl
811
+ s: undefined,
812
+ // needsShim
813
+ n: false,
814
+ // type
815
+ t: null,
816
+ // meta
817
+ m: null
818
+ };
819
+ if (registry[url]) {
820
+ let i = 0;
821
+ while (registry[load.u + ++i]);
822
+ load.u += i;
823
+ }
824
+ registry[load.u] = load;
825
+
826
+ load.f = (async () => {
827
+ if (!source) {
828
+ // preload fetch options override fetch options (race)
829
+ let t;
830
+ ({ r: load.r, s: source, t } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
831
+ if (t && !shimMode) {
832
+ if (t === 'css' && !cssModulesEnabled || t === 'json' && !jsonModulesEnabled || t === 'wasm' && !wasmModulesEnabled)
833
+ throw Error(`${t}-modules require <script type="esms-options">{ "polyfillEnable": ["${t}-modules"] }<${''}/script>`);
834
+ if (t === 'css' && !supportsCssAssertions || t === 'json' && !supportsJsonAssertions || t === 'wasm' && !supportsWasmModules)
835
+ load.n = true;
836
+ }
837
+ }
838
+ try {
839
+ load.a = parse(source, load.u);
840
+ }
841
+ catch (e) {
842
+ throwError(e);
843
+ load.a = [[], [], false];
844
+ }
845
+ load.S = source;
846
+ return load;
847
+ })();
848
+
849
+ load.L = load.f.then(async () => {
850
+ let childFetchOpts = fetchOpts;
851
+ load.d = (await Promise.all(load.a[0].map(async ({ n, d }) => {
852
+ if (d >= 0 && !supportsDynamicImport || d === -2 && !supportsImportMeta)
853
+ load.n = true;
854
+ if (d !== -1 || !n) return;
855
+ const { r, b } = await resolve(n, load.r || load.u);
856
+ if (b && (!supportsImportMaps || importMapSrcOrLazy))
857
+ load.n = true;
858
+ if (d !== -1) return;
859
+ if (skip && skip(r)) return { b: r };
860
+ if (childFetchOpts.integrity)
861
+ childFetchOpts = Object.assign({}, childFetchOpts, { integrity: undefined });
862
+ return getOrCreateLoad(r, childFetchOpts, load.r).f;
863
+ }))).filter(l => l);
864
+ });
865
+
866
+ return load;
867
+ }
868
+
869
+ function processScriptsAndPreloads (mapsOnly = false) {
870
+ if (!mapsOnly)
871
+ for (const link of document.querySelectorAll(shimMode ? 'link[rel=modulepreload-shim]' : 'link[rel=modulepreload]'))
872
+ processPreload(link);
873
+ for (const script of document.querySelectorAll(shimMode ? 'script[type=importmap-shim]' : 'script[type=importmap]'))
874
+ processImportMap(script);
875
+ if (!mapsOnly)
876
+ for (const script of document.querySelectorAll(shimMode ? 'script[type=module-shim]' : 'script[type=module]'))
877
+ processScript(script);
878
+ }
879
+
880
+ function getFetchOpts (script) {
881
+ const fetchOpts = {};
882
+ if (script.integrity)
883
+ fetchOpts.integrity = script.integrity;
884
+ if (script.referrerPolicy)
885
+ fetchOpts.referrerPolicy = script.referrerPolicy;
886
+ if (script.fetchPriority)
887
+ fetchOpts.priority = script.fetchPriority;
888
+ if (script.crossOrigin === 'use-credentials')
889
+ fetchOpts.credentials = 'include';
890
+ else if (script.crossOrigin === 'anonymous')
891
+ fetchOpts.credentials = 'omit';
892
+ else
893
+ fetchOpts.credentials = 'same-origin';
894
+ return fetchOpts;
895
+ }
896
+
897
+ let lastStaticLoadPromise = Promise.resolve();
898
+
899
+ let domContentLoadedCnt = 1;
900
+ function domContentLoadedCheck () {
901
+ if (--domContentLoadedCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
902
+ document.dispatchEvent(new Event('DOMContentLoaded'));
903
+ }
904
+ }
905
+ // this should always trigger because we assume es-module-shims is itself a domcontentloaded requirement
906
+ if (hasDocument) {
907
+ document.addEventListener('DOMContentLoaded', async () => {
908
+ await initPromise;
909
+ domContentLoadedCheck();
910
+ });
911
+ }
912
+
913
+ let readyStateCompleteCnt = 1;
914
+ function readyStateCompleteCheck () {
915
+ if (--readyStateCompleteCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
916
+ document.dispatchEvent(new Event('readystatechange'));
917
+ }
918
+ }
919
+
920
+ const hasNext = script => script.nextSibling || script.parentNode && hasNext(script.parentNode);
921
+ const epCheck = (script, ready) => script.ep || !ready && (!script.src && !script.innerHTML || !hasNext(script)) || script.getAttribute('noshim') !== null || !(script.ep = true);
922
+
923
+ function processImportMap (script, ready = readyStateCompleteCnt > 0) {
924
+ if (epCheck(script, ready)) return;
925
+ // we dont currently support multiple, external or dynamic imports maps in polyfill mode to match native
926
+ if (script.src) {
927
+ if (!shimMode)
928
+ return;
929
+ setImportMapSrcOrLazy();
930
+ }
931
+ if (acceptingImportMaps) {
932
+ importMapPromise = importMapPromise
933
+ .then(async () => {
934
+ importMap = resolveAndComposeImportMap(script.src ? await (await doFetch(script.src, getFetchOpts(script))).json() : JSON.parse(script.innerHTML), script.src || baseUrl, importMap);
935
+ })
936
+ .catch(e => {
937
+ console.log(e);
938
+ if (e instanceof SyntaxError)
939
+ e = new Error(`Unable to parse import map ${e.message} in: ${script.src || script.innerHTML}`);
940
+ throwError(e);
941
+ });
942
+ if (!shimMode)
943
+ acceptingImportMaps = false;
944
+ }
945
+ }
946
+
947
+ function processScript (script, ready = readyStateCompleteCnt > 0) {
948
+ if (epCheck(script, ready)) return;
949
+ // does this load block readystate complete
950
+ const isBlockingReadyScript = script.getAttribute('async') === null && readyStateCompleteCnt > 0;
951
+ // does this load block DOMContentLoaded
952
+ const isDomContentLoadedScript = domContentLoadedCnt > 0;
953
+ if (isBlockingReadyScript) readyStateCompleteCnt++;
954
+ if (isDomContentLoadedScript) domContentLoadedCnt++;
955
+ const loadPromise = topLevelLoad(script.src || baseUrl, getFetchOpts(script), !script.src && script.innerHTML, !shimMode, isBlockingReadyScript && lastStaticLoadPromise)
956
+ .then(() => {
957
+ // if the type of the script tag "module-shim", browser does not dispatch a "load" event
958
+ // see https://github.com/guybedford/es-module-shims/issues/346
959
+ if (shimMode) {
960
+ script.dispatchEvent(new Event('load'));
961
+ }
962
+ })
963
+ .catch(throwError);
964
+ if (isBlockingReadyScript)
965
+ lastStaticLoadPromise = loadPromise.then(readyStateCompleteCheck);
966
+ if (isDomContentLoadedScript)
967
+ loadPromise.then(domContentLoadedCheck);
968
+ }
969
+
970
+ const fetchCache = {};
971
+ function processPreload (link) {
972
+ if (link.ep) return;
973
+ link.ep = true;
974
+ if (fetchCache[link.href])
975
+ return;
976
+ fetchCache[link.href] = fetchModule(link.href, getFetchOpts(link));
977
+ }
978
+
979
+ })();
980
+
981
+ /**
982
+ * Dynamically load the infoview module, execute `renderInfoview` with the provided `args`,
983
+ * and pass its return value to `next`. See `README.md` for why this is needed.
984
+ *
985
+ * @param imports is the `imports` section of an [`importmap`](https://github.com/WICG/import-maps).
986
+ * It must contain URLs for `@leanprover/infoview`, `react`, `react/jsx-runtime`, `react-dom`,
987
+ * It may include additional URLs. The listed libraries become `import`able
988
+ * from user widgets. Note that `dist/` already includes these files, so the following works:
989
+ * ```js
990
+ * {
991
+ * '@leanprover/infoview': 'https://unpkg.com/@leanprover/infoview/dist/index.production.min.js',
992
+ * 'react': 'https://unpkg.com/@leanprover/infoview/dist/react.production.min.js',
993
+ * 'react/jsx-runtime': 'https://unpkg.com/@leanprover/infoview/dist/react-jsx-runtime.production.min.js',
994
+ * 'react-dom': 'https://unpkg.com/@leanprover/infoview/dist/react-dom.production.min.js',
995
+ * }
996
+ * ```
997
+ */
998
+ function loadRenderInfoview(imports, args, next) {
999
+ importShim.addImportMap({ imports });
1000
+ importShim('@leanprover/infoview')
1001
+ .then((mod) => next(mod.renderInfoview(...args)))
1002
+ .catch(ex => console.error(`Error importing '@leanprover/infoview': ${JSON.stringify(ex)}`));
1003
+ }
1004
+
1005
+ export { loadRenderInfoview };
1006
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmRldmVsb3BtZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi9ub2RlX21vZHVsZXMvZXMtbW9kdWxlLXNoaW1zL2Rpc3QvZXMtbW9kdWxlLXNoaW1zLmpzIiwiLi4vc3JjL2xvYWRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBFUyBNb2R1bGUgU2hpbXMgMS44LjMgKi9cbihmdW5jdGlvbiAoKSB7XG5cbiAgY29uc3QgaGFzV2luZG93ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XHJcbiAgY29uc3QgaGFzRG9jdW1lbnQgPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xyXG5cclxuICBjb25zdCBub29wID0gKCkgPT4ge307XHJcblxyXG4gIGNvbnN0IG9wdGlvbnNTY3JpcHQgPSBoYXNEb2N1bWVudCA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFt0eXBlPWVzbXMtb3B0aW9uc10nKSA6IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3QgZXNtc0luaXRPcHRpb25zID0gb3B0aW9uc1NjcmlwdCA/IEpTT04ucGFyc2Uob3B0aW9uc1NjcmlwdC5pbm5lckhUTUwpIDoge307XHJcbiAgT2JqZWN0LmFzc2lnbihlc21zSW5pdE9wdGlvbnMsIHNlbGYuZXNtc0luaXRPcHRpb25zIHx8IHt9KTtcclxuXHJcbiAgbGV0IHNoaW1Nb2RlID0gaGFzRG9jdW1lbnQgPyAhIWVzbXNJbml0T3B0aW9ucy5zaGltTW9kZSA6IHRydWU7XHJcblxyXG4gIGNvbnN0IGltcG9ydEhvb2sgPSBnbG9iYWxIb29rKHNoaW1Nb2RlICYmIGVzbXNJbml0T3B0aW9ucy5vbmltcG9ydCk7XHJcbiAgY29uc3QgcmVzb2x2ZUhvb2sgPSBnbG9iYWxIb29rKHNoaW1Nb2RlICYmIGVzbXNJbml0T3B0aW9ucy5yZXNvbHZlKTtcclxuICBsZXQgZmV0Y2hIb29rID0gZXNtc0luaXRPcHRpb25zLmZldGNoID8gZ2xvYmFsSG9vayhlc21zSW5pdE9wdGlvbnMuZmV0Y2gpIDogZmV0Y2g7XHJcbiAgY29uc3QgbWV0YUhvb2sgPSBlc21zSW5pdE9wdGlvbnMubWV0YSA/IGdsb2JhbEhvb2soc2hpbU1vZGUgJiYgZXNtc0luaXRPcHRpb25zLm1ldGEpIDogbm9vcDtcclxuXHJcbiAgY29uc3QgbWFwT3ZlcnJpZGVzID0gZXNtc0luaXRPcHRpb25zLm1hcE92ZXJyaWRlcztcclxuXHJcbiAgbGV0IG5vbmNlID0gZXNtc0luaXRPcHRpb25zLm5vbmNlO1xyXG4gIGlmICghbm9uY2UgJiYgaGFzRG9jdW1lbnQpIHtcclxuICAgIGNvbnN0IG5vbmNlRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtub25jZV0nKTtcclxuICAgIGlmIChub25jZUVsZW1lbnQpXHJcbiAgICAgIG5vbmNlID0gbm9uY2VFbGVtZW50Lm5vbmNlIHx8IG5vbmNlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ25vbmNlJyk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBvbmVycm9yID0gZ2xvYmFsSG9vayhlc21zSW5pdE9wdGlvbnMub25lcnJvciB8fCBub29wKTtcclxuICBjb25zdCBvbnBvbHlmaWxsID0gZXNtc0luaXRPcHRpb25zLm9ucG9seWZpbGwgPyBnbG9iYWxIb29rKGVzbXNJbml0T3B0aW9ucy5vbnBvbHlmaWxsKSA6ICgpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKCclY15eIE1vZHVsZSBUeXBlRXJyb3IgYWJvdmUgaXMgcG9seWZpbGxlZCBhbmQgY2FuIGJlIGlnbm9yZWQgXl4nLCAnZm9udC13ZWlnaHQ6OTAwO2NvbG9yOiMzOTEnKTtcclxuICB9O1xyXG5cclxuICBjb25zdCB7IHJldm9rZUJsb2JVUkxzLCBub0xvYWRFdmVudFJldHJpZ2dlcnMsIGVuZm9yY2VJbnRlZ3JpdHkgfSA9IGVzbXNJbml0T3B0aW9ucztcclxuXHJcbiAgZnVuY3Rpb24gZ2xvYmFsSG9vayAobmFtZSkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyA/IHNlbGZbbmFtZV0gOiBuYW1lO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZW5hYmxlID0gQXJyYXkuaXNBcnJheShlc21zSW5pdE9wdGlvbnMucG9seWZpbGxFbmFibGUpID8gZXNtc0luaXRPcHRpb25zLnBvbHlmaWxsRW5hYmxlIDogW107XHJcbiAgY29uc3QgY3NzTW9kdWxlc0VuYWJsZWQgPSBlbmFibGUuaW5jbHVkZXMoJ2Nzcy1tb2R1bGVzJyk7XHJcbiAgY29uc3QganNvbk1vZHVsZXNFbmFibGVkID0gZW5hYmxlLmluY2x1ZGVzKCdqc29uLW1vZHVsZXMnKTtcclxuICBjb25zdCB3YXNtTW9kdWxlc0VuYWJsZWQgPSBlbmFibGUuaW5jbHVkZXMoJ3dhc20tbW9kdWxlcycpO1xyXG5cclxuICBjb25zdCBlZGdlID0gIW5hdmlnYXRvci51c2VyQWdlbnREYXRhICYmICEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRWRnZVxcL1xcZCtcXC5cXGQrLyk7XHJcblxyXG4gIGNvbnN0IGJhc2VVcmwgPSBoYXNEb2N1bWVudFxyXG4gICAgPyBkb2N1bWVudC5iYXNlVVJJXHJcbiAgICA6IGAke2xvY2F0aW9uLnByb3RvY29sfS8vJHtsb2NhdGlvbi5ob3N0fSR7bG9jYXRpb24ucGF0aG5hbWUuaW5jbHVkZXMoJy8nKSBcclxuICAgID8gbG9jYXRpb24ucGF0aG5hbWUuc2xpY2UoMCwgbG9jYXRpb24ucGF0aG5hbWUubGFzdEluZGV4T2YoJy8nKSArIDEpIFxyXG4gICAgOiBsb2NhdGlvbi5wYXRobmFtZX1gO1xyXG5cclxuICBjb25zdCBjcmVhdGVCbG9iID0gKHNvdXJjZSwgdHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnKSA9PiBVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtzb3VyY2VdLCB7IHR5cGUgfSkpO1xyXG4gIGxldCB7IHNraXAgfSA9IGVzbXNJbml0T3B0aW9ucztcclxuICBpZiAoQXJyYXkuaXNBcnJheShza2lwKSkge1xyXG4gICAgY29uc3QgbCA9IHNraXAubWFwKHMgPT4gbmV3IFVSTChzLCBiYXNlVXJsKS5ocmVmKTtcclxuICAgIHNraXAgPSBzID0+IGwuc29tZShpID0+IGlbaS5sZW5ndGggLSAxXSA9PT0gJy8nICYmIHMuc3RhcnRzV2l0aChpKSB8fCBzID09PSBpKTtcclxuICB9XHJcbiAgZWxzZSBpZiAodHlwZW9mIHNraXAgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBjb25zdCByID0gbmV3IFJlZ0V4cChza2lwKTtcclxuICAgIHNraXAgPSBzID0+IHIudGVzdChzKTtcclxuICB9IGVsc2UgaWYgKHNraXAgaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuICAgIHNraXAgPSBzID0+IHNraXAudGVzdChzKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGVvb3AgPSBlcnIgPT4gc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVyciB9KTtcclxuXHJcbiAgY29uc3QgdGhyb3dFcnJvciA9IGVyciA9PiB7IChzZWxmLnJlcG9ydEVycm9yIHx8IGhhc1dpbmRvdyAmJiB3aW5kb3cuc2FmYXJpICYmIGNvbnNvbGUuZXJyb3IgfHwgZW9vcCkoZXJyKSwgdm9pZCBvbmVycm9yKGVycik7IH07XHJcblxyXG4gIGZ1bmN0aW9uIGZyb21QYXJlbnQgKHBhcmVudCkge1xyXG4gICAgcmV0dXJuIHBhcmVudCA/IGAgaW1wb3J0ZWQgZnJvbSAke3BhcmVudH1gIDogJyc7XHJcbiAgfVxyXG5cclxuICBsZXQgaW1wb3J0TWFwU3JjT3JMYXp5ID0gZmFsc2U7XHJcblxyXG4gIGZ1bmN0aW9uIHNldEltcG9ydE1hcFNyY09yTGF6eSAoKSB7XHJcbiAgICBpbXBvcnRNYXBTcmNPckxhenkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gc2hpbSBtb2RlIGlzIGRldGVybWluZWQgb24gaW5pdGlhbGl6YXRpb24sIG5vIGxhdGUgc2hpbSBtb2RlXHJcbiAgaWYgKCFzaGltTW9kZSkge1xyXG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NjcmlwdFt0eXBlPW1vZHVsZS1zaGltXSxzY3JpcHRbdHlwZT1pbXBvcnRtYXAtc2hpbV0sbGlua1tyZWw9bW9kdWxlcHJlbG9hZC1zaGltXScpLmxlbmd0aCkge1xyXG4gICAgICBzaGltTW9kZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IHNlZW5TY3JpcHQgPSBmYWxzZTtcclxuICAgICAgZm9yIChjb25zdCBzY3JpcHQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9bW9kdWxlXSxzY3JpcHRbdHlwZT1pbXBvcnRtYXBdJykpIHtcclxuICAgICAgICBpZiAoIXNlZW5TY3JpcHQpIHtcclxuICAgICAgICAgIGlmIChzY3JpcHQudHlwZSA9PT0gJ21vZHVsZScgJiYgIXNjcmlwdC5lcClcclxuICAgICAgICAgICAgc2VlblNjcmlwdCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHNjcmlwdC50eXBlID09PSAnaW1wb3J0bWFwJyAmJiBzZWVuU2NyaXB0KSB7XHJcbiAgICAgICAgICBpbXBvcnRNYXBTcmNPckxhenkgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxuXG4gIGNvbnN0IGJhY2tzbGFzaFJlZ0V4ID0gL1xcXFwvZztcclxuXHJcbiAgZnVuY3Rpb24gYXNVUkwgKHVybCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHVybC5pbmRleE9mKCc6JykgIT09IC0xKVxyXG4gICAgICAgIHJldHVybiBuZXcgVVJMKHVybCkuaHJlZjtcclxuICAgIH1cclxuICAgIGNhdGNoIChfKSB7fVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcmVzb2x2ZVVybCAocmVsVXJsLCBwYXJlbnRVcmwpIHtcclxuICAgIHJldHVybiByZXNvbHZlSWZOb3RQbGFpbk9yVXJsKHJlbFVybCwgcGFyZW50VXJsKSB8fCAoYXNVUkwocmVsVXJsKSB8fCByZXNvbHZlSWZOb3RQbGFpbk9yVXJsKCcuLycgKyByZWxVcmwsIHBhcmVudFVybCkpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcmVzb2x2ZUlmTm90UGxhaW5PclVybCAocmVsVXJsLCBwYXJlbnRVcmwpIHtcclxuICAgIGNvbnN0IGhJZHggPSBwYXJlbnRVcmwuaW5kZXhPZignIycpLCBxSWR4ID0gcGFyZW50VXJsLmluZGV4T2YoJz8nKTtcclxuICAgIGlmIChoSWR4ICsgcUlkeCA+IC0yKVxyXG4gICAgICBwYXJlbnRVcmwgPSBwYXJlbnRVcmwuc2xpY2UoMCwgaElkeCA9PT0gLTEgPyBxSWR4IDogcUlkeCA9PT0gLTEgfHwgcUlkeCA+IGhJZHggPyBoSWR4IDogcUlkeCk7XHJcbiAgICBpZiAocmVsVXJsLmluZGV4T2YoJ1xcXFwnKSAhPT0gLTEpXHJcbiAgICAgIHJlbFVybCA9IHJlbFVybC5yZXBsYWNlKGJhY2tzbGFzaFJlZ0V4LCAnLycpO1xyXG4gICAgLy8gcHJvdG9jb2wtcmVsYXRpdmVcclxuICAgIGlmIChyZWxVcmxbMF0gPT09ICcvJyAmJiByZWxVcmxbMV0gPT09ICcvJykge1xyXG4gICAgICByZXR1cm4gcGFyZW50VXJsLnNsaWNlKDAsIHBhcmVudFVybC5pbmRleE9mKCc6JykgKyAxKSArIHJlbFVybDtcclxuICAgIH1cclxuICAgIC8vIHJlbGF0aXZlLXVybFxyXG4gICAgZWxzZSBpZiAocmVsVXJsWzBdID09PSAnLicgJiYgKHJlbFVybFsxXSA9PT0gJy8nIHx8IHJlbFVybFsxXSA9PT0gJy4nICYmIChyZWxVcmxbMl0gPT09ICcvJyB8fCByZWxVcmwubGVuZ3RoID09PSAyICYmIChyZWxVcmwgKz0gJy8nKSkgfHxcclxuICAgICAgICByZWxVcmwubGVuZ3RoID09PSAxICAmJiAocmVsVXJsICs9ICcvJykpIHx8XHJcbiAgICAgICAgcmVsVXJsWzBdID09PSAnLycpIHtcclxuICAgICAgY29uc3QgcGFyZW50UHJvdG9jb2wgPSBwYXJlbnRVcmwuc2xpY2UoMCwgcGFyZW50VXJsLmluZGV4T2YoJzonKSArIDEpO1xyXG4gICAgICBpZiAocGFyZW50UHJvdG9jb2wgPT09ICdibG9iOicpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBGYWlsZWQgdG8gcmVzb2x2ZSBtb2R1bGUgc3BlY2lmaWVyIFwiJHtyZWxVcmx9XCIuIEludmFsaWQgcmVsYXRpdmUgdXJsIG9yIGJhc2Ugc2NoZW1lIGlzbid0IGhpZXJhcmNoaWNhbC5gKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBEaXNhYmxlZCwgYnV0IHRoZXNlIGNhc2VzIHdpbGwgZ2l2ZSBpbmNvbnNpc3RlbnQgcmVzdWx0cyBmb3IgZGVlcCBiYWNrdHJhY2tpbmdcclxuICAgICAgLy9pZiAocGFyZW50VXJsW3BhcmVudFByb3RvY29sLmxlbmd0aF0gIT09ICcvJylcclxuICAgICAgLy8gIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlc29sdmUnKTtcclxuICAgICAgLy8gcmVhZCBwYXRobmFtZSBmcm9tIHBhcmVudCBVUkxcclxuICAgICAgLy8gcGF0aG5hbWUgdGFrZW4gdG8gYmUgcGFydCBhZnRlciBsZWFkaW5nIFwiL1wiXHJcbiAgICAgIGxldCBwYXRobmFtZTtcclxuICAgICAgaWYgKHBhcmVudFVybFtwYXJlbnRQcm90b2NvbC5sZW5ndGggKyAxXSA9PT0gJy8nKSB7XHJcbiAgICAgICAgLy8gcmVzb2x2aW5nIHRvIGEgOi8vIHNvIHdlIG5lZWQgdG8gcmVhZCBvdXQgdGhlIGF1dGggYW5kIGhvc3RcclxuICAgICAgICBpZiAocGFyZW50UHJvdG9jb2wgIT09ICdmaWxlOicpIHtcclxuICAgICAgICAgIHBhdGhuYW1lID0gcGFyZW50VXJsLnNsaWNlKHBhcmVudFByb3RvY29sLmxlbmd0aCArIDIpO1xyXG4gICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZS5zbGljZShwYXRobmFtZS5pbmRleE9mKCcvJykgKyAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBwYXRobmFtZSA9IHBhcmVudFVybC5zbGljZSg4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgLy8gcmVzb2x2aW5nIHRvIDovIHNvIHBhdGhuYW1lIGlzIHRoZSAvLi4uIHBhcnRcclxuICAgICAgICBwYXRobmFtZSA9IHBhcmVudFVybC5zbGljZShwYXJlbnRQcm90b2NvbC5sZW5ndGggKyAocGFyZW50VXJsW3BhcmVudFByb3RvY29sLmxlbmd0aF0gPT09ICcvJykpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocmVsVXJsWzBdID09PSAnLycpXHJcbiAgICAgICAgcmV0dXJuIHBhcmVudFVybC5zbGljZSgwLCBwYXJlbnRVcmwubGVuZ3RoIC0gcGF0aG5hbWUubGVuZ3RoIC0gMSkgKyByZWxVcmw7XHJcblxyXG4gICAgICAvLyBqb2luIHRvZ2V0aGVyIGFuZCBzcGxpdCBmb3IgcmVtb3ZhbCBvZiAuLiBhbmQgLiBzZWdtZW50c1xyXG4gICAgICAvLyBsb29waW5nIHRoZSBzdHJpbmcgaW5zdGVhZCBvZiBhbnl0aGluZyBmYW5jeSBmb3IgcGVyZiByZWFzb25zXHJcbiAgICAgIC8vICcuLi8uLi8uLi8uLi8uLi96JyByZXNvbHZlZCB0byAneC95JyBpcyBqdXN0ICd6J1xyXG4gICAgICBjb25zdCBzZWdtZW50ZWQgPSBwYXRobmFtZS5zbGljZSgwLCBwYXRobmFtZS5sYXN0SW5kZXhPZignLycpICsgMSkgKyByZWxVcmw7XHJcblxyXG4gICAgICBjb25zdCBvdXRwdXQgPSBbXTtcclxuICAgICAgbGV0IHNlZ21lbnRJbmRleCA9IC0xO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlZ21lbnRlZC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vIGJ1c3kgcmVhZGluZyBhIHNlZ21lbnQgLSBvbmx5IHRlcm1pbmF0ZSBvbiAnLydcclxuICAgICAgICBpZiAoc2VnbWVudEluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgaWYgKHNlZ21lbnRlZFtpXSA9PT0gJy8nKSB7XHJcbiAgICAgICAgICAgIG91dHB1dC5wdXNoKHNlZ21lbnRlZC5zbGljZShzZWdtZW50SW5kZXgsIGkgKyAxKSk7XHJcbiAgICAgICAgICAgIHNlZ21lbnRJbmRleCA9IC0xO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIG5ldyBzZWdtZW50IC0gY2hlY2sgaWYgaXQgaXMgcmVsYXRpdmVcclxuICAgICAgICBlbHNlIGlmIChzZWdtZW50ZWRbaV0gPT09ICcuJykge1xyXG4gICAgICAgICAgLy8gLi4vIHNlZ21lbnRcclxuICAgICAgICAgIGlmIChzZWdtZW50ZWRbaSArIDFdID09PSAnLicgJiYgKHNlZ21lbnRlZFtpICsgMl0gPT09ICcvJyB8fCBpICsgMiA9PT0gc2VnbWVudGVkLmxlbmd0aCkpIHtcclxuICAgICAgICAgICAgb3V0cHV0LnBvcCgpO1xyXG4gICAgICAgICAgICBpICs9IDI7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gLi8gc2VnbWVudFxyXG4gICAgICAgICAgZWxzZSBpZiAoc2VnbWVudGVkW2kgKyAxXSA9PT0gJy8nIHx8IGkgKyAxID09PSBzZWdtZW50ZWQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGkgKz0gMTtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGl0IGlzIHRoZSBzdGFydCBvZiBhIG5ldyBzZWdtZW50XHJcbiAgICAgICAgd2hpbGUgKHNlZ21lbnRlZFtpXSA9PT0gJy8nKSBpKys7XHJcbiAgICAgICAgc2VnbWVudEluZGV4ID0gaTsgXHJcbiAgICAgIH1cclxuICAgICAgLy8gZmluaXNoIHJlYWRpbmcgb3V0IHRoZSBsYXN0IHNlZ21lbnRcclxuICAgICAgaWYgKHNlZ21lbnRJbmRleCAhPT0gLTEpXHJcbiAgICAgICAgb3V0cHV0LnB1c2goc2VnbWVudGVkLnNsaWNlKHNlZ21lbnRJbmRleCkpO1xyXG4gICAgICByZXR1cm4gcGFyZW50VXJsLnNsaWNlKDAsIHBhcmVudFVybC5sZW5ndGggLSBwYXRobmFtZS5sZW5ndGgpICsgb3V0cHV0LmpvaW4oJycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAgKGpzb24sIGJhc2VVcmwsIHBhcmVudE1hcCkge1xyXG4gICAgY29uc3Qgb3V0TWFwID0geyBpbXBvcnRzOiBPYmplY3QuYXNzaWduKHt9LCBwYXJlbnRNYXAuaW1wb3J0cyksIHNjb3BlczogT2JqZWN0LmFzc2lnbih7fSwgcGFyZW50TWFwLnNjb3BlcykgfTtcclxuXHJcbiAgICBpZiAoanNvbi5pbXBvcnRzKVxyXG4gICAgICByZXNvbHZlQW5kQ29tcG9zZVBhY2thZ2VzKGpzb24uaW1wb3J0cywgb3V0TWFwLmltcG9ydHMsIGJhc2VVcmwsIHBhcmVudE1hcCk7XHJcblxyXG4gICAgaWYgKGpzb24uc2NvcGVzKVxyXG4gICAgICBmb3IgKGxldCBzIGluIGpzb24uc2NvcGVzKSB7XHJcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRTY29wZSA9IHJlc29sdmVVcmwocywgYmFzZVVybCk7XHJcbiAgICAgICAgcmVzb2x2ZUFuZENvbXBvc2VQYWNrYWdlcyhqc29uLnNjb3Blc1tzXSwgb3V0TWFwLnNjb3Blc1tyZXNvbHZlZFNjb3BlXSB8fCAob3V0TWFwLnNjb3Blc1tyZXNvbHZlZFNjb3BlXSA9IHt9KSwgYmFzZVVybCwgcGFyZW50TWFwKTtcclxuICAgICAgfVxyXG5cclxuICAgIHJldHVybiBvdXRNYXA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBnZXRNYXRjaCAocGF0aCwgbWF0Y2hPYmopIHtcclxuICAgIGlmIChtYXRjaE9ialtwYXRoXSlcclxuICAgICAgcmV0dXJuIHBhdGg7XHJcbiAgICBsZXQgc2VwSW5kZXggPSBwYXRoLmxlbmd0aDtcclxuICAgIGRvIHtcclxuICAgICAgY29uc3Qgc2VnbWVudCA9IHBhdGguc2xpY2UoMCwgc2VwSW5kZXggKyAxKTtcclxuICAgICAgaWYgKHNlZ21lbnQgaW4gbWF0Y2hPYmopXHJcbiAgICAgICAgcmV0dXJuIHNlZ21lbnQ7XHJcbiAgICB9IHdoaWxlICgoc2VwSW5kZXggPSBwYXRoLmxhc3RJbmRleE9mKCcvJywgc2VwSW5kZXggLSAxKSkgIT09IC0xKVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlQYWNrYWdlcyAoaWQsIHBhY2thZ2VzKSB7XHJcbiAgICBjb25zdCBwa2dOYW1lID0gZ2V0TWF0Y2goaWQsIHBhY2thZ2VzKTtcclxuICAgIGlmIChwa2dOYW1lKSB7XHJcbiAgICAgIGNvbnN0IHBrZyA9IHBhY2thZ2VzW3BrZ05hbWVdO1xyXG4gICAgICBpZiAocGtnID09PSBudWxsKSByZXR1cm47XHJcbiAgICAgIHJldHVybiBwa2cgKyBpZC5zbGljZShwa2dOYW1lLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydE1hcCAoaW1wb3J0TWFwLCByZXNvbHZlZE9yUGxhaW4sIHBhcmVudFVybCkge1xyXG4gICAgbGV0IHNjb3BlVXJsID0gcGFyZW50VXJsICYmIGdldE1hdGNoKHBhcmVudFVybCwgaW1wb3J0TWFwLnNjb3Blcyk7XHJcbiAgICB3aGlsZSAoc2NvcGVVcmwpIHtcclxuICAgICAgY29uc3QgcGFja2FnZVJlc29sdXRpb24gPSBhcHBseVBhY2thZ2VzKHJlc29sdmVkT3JQbGFpbiwgaW1wb3J0TWFwLnNjb3Blc1tzY29wZVVybF0pO1xyXG4gICAgICBpZiAocGFja2FnZVJlc29sdXRpb24pXHJcbiAgICAgICAgcmV0dXJuIHBhY2thZ2VSZXNvbHV0aW9uO1xyXG4gICAgICBzY29wZVVybCA9IGdldE1hdGNoKHNjb3BlVXJsLnNsaWNlKDAsIHNjb3BlVXJsLmxhc3RJbmRleE9mKCcvJykpLCBpbXBvcnRNYXAuc2NvcGVzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBhcHBseVBhY2thZ2VzKHJlc29sdmVkT3JQbGFpbiwgaW1wb3J0TWFwLmltcG9ydHMpIHx8IHJlc29sdmVkT3JQbGFpbi5pbmRleE9mKCc6JykgIT09IC0xICYmIHJlc29sdmVkT3JQbGFpbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHJlc29sdmVBbmRDb21wb3NlUGFja2FnZXMgKHBhY2thZ2VzLCBvdXRQYWNrYWdlcywgYmFzZVVybCwgcGFyZW50TWFwKSB7XHJcbiAgICBmb3IgKGxldCBwIGluIHBhY2thZ2VzKSB7XHJcbiAgICAgIGNvbnN0IHJlc29sdmVkTGhzID0gcmVzb2x2ZUlmTm90UGxhaW5PclVybChwLCBiYXNlVXJsKSB8fCBwO1xyXG4gICAgICBpZiAoKCFzaGltTW9kZSB8fCAhbWFwT3ZlcnJpZGVzKSAmJiBvdXRQYWNrYWdlc1tyZXNvbHZlZExoc10gJiYgKG91dFBhY2thZ2VzW3Jlc29sdmVkTGhzXSAhPT0gcGFja2FnZXNbcmVzb2x2ZWRMaHNdKSkge1xyXG4gICAgICAgIHRocm93IEVycm9yKGBSZWplY3RlZCBtYXAgb3ZlcnJpZGUgXCIke3Jlc29sdmVkTGhzfVwiIGZyb20gJHtvdXRQYWNrYWdlc1tyZXNvbHZlZExoc119IHRvICR7cGFja2FnZXNbcmVzb2x2ZWRMaHNdfS5gKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgdGFyZ2V0ID0gcGFja2FnZXNbcF07XHJcbiAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ICE9PSAnc3RyaW5nJylcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgY29uc3QgbWFwcGVkID0gcmVzb2x2ZUltcG9ydE1hcChwYXJlbnRNYXAsIHJlc29sdmVJZk5vdFBsYWluT3JVcmwodGFyZ2V0LCBiYXNlVXJsKSB8fCB0YXJnZXQsIGJhc2VVcmwpO1xyXG4gICAgICBpZiAobWFwcGVkKSB7XHJcbiAgICAgICAgb3V0UGFja2FnZXNbcmVzb2x2ZWRMaHNdID0gbWFwcGVkO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUud2FybihgTWFwcGluZyBcIiR7cH1cIiAtPiBcIiR7cGFja2FnZXNbcF19XCIgZG9lcyBub3QgcmVzb2x2ZWApO1xyXG4gICAgfVxyXG4gIH1cblxuICBsZXQgZHluYW1pY0ltcG9ydCA9ICFoYXNEb2N1bWVudCAmJiAoMCwgZXZhbCkoJ3U9PmltcG9ydCh1KScpO1xyXG5cclxuICBsZXQgc3VwcG9ydHNEeW5hbWljSW1wb3J0O1xyXG5cclxuICBjb25zdCBkeW5hbWljSW1wb3J0Q2hlY2sgPSBoYXNEb2N1bWVudCAmJiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgIGNvbnN0IHMgPSBPYmplY3QuYXNzaWduKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLCB7XHJcbiAgICAgIHNyYzogY3JlYXRlQmxvYignc2VsZi5fZD11PT5pbXBvcnQodSknKSxcclxuICAgICAgZXA6IHRydWVcclxuICAgIH0pO1xyXG4gICAgcy5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgbm9uY2UpO1xyXG4gICAgcy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xyXG4gICAgICBpZiAoIShzdXBwb3J0c0R5bmFtaWNJbXBvcnQgPSAhIShkeW5hbWljSW1wb3J0ID0gc2VsZi5fZCkpKSB7XHJcbiAgICAgICAgbGV0IGVycjtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfZXJyID0+IGVyciA9IF9lcnIpO1xyXG4gICAgICAgIGR5bmFtaWNJbXBvcnQgPSAodXJsLCBvcHRzKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzID0gT2JqZWN0LmFzc2lnbihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSwge1xyXG4gICAgICAgICAgICB0eXBlOiAnbW9kdWxlJyxcclxuICAgICAgICAgICAgc3JjOiBjcmVhdGVCbG9iKGBpbXBvcnQqYXMgbSBmcm9tJyR7dXJsfSc7c2VsZi5fZXNtc2k9bWApXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGVyciA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIHMuZXAgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKG5vbmNlKVxyXG4gICAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCBub25jZSk7XHJcbiAgICAgICAgICAvLyBTYWZhcmkgaXMgdW5pcXVlIGluIHN1cHBvcnRpbmcgbW9kdWxlIHNjcmlwdCBlcnJvciBldmVudHNcclxuICAgICAgICAgIHMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBjYik7XHJcbiAgICAgICAgICBzLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjYik7XHJcbiAgICAgICAgICBmdW5jdGlvbiBjYiAoX2Vycikge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKHMpO1xyXG4gICAgICAgICAgICBpZiAoc2VsZi5fZXNtc2kpIHtcclxuICAgICAgICAgICAgICByZXNvbHZlKHNlbGYuX2VzbXNpLCBiYXNlVXJsKTtcclxuICAgICAgICAgICAgICBzZWxmLl9lc21zaSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICByZWplY3QoIShfZXJyIGluc3RhbmNlb2YgRXZlbnQpICYmIF9lcnIgfHwgZXJyICYmIGVyci5lcnJvciB8fCBuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgJHtvcHRzICYmIG9wdHMuZXJyVXJsIHx8IHVybH0gKCR7cy5zcmN9KS5gKSk7XHJcbiAgICAgICAgICAgICAgZXJyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQocyk7XHJcbiAgICAgIGRlbGV0ZSBzZWxmLl9kO1xyXG4gICAgICByZXNvbHZlKCk7XHJcbiAgICB9KTtcclxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyk7XHJcbiAgfSk7XG5cbiAgLy8gc3VwcG9ydCBicm93c2VycyB3aXRob3V0IGR5bmFtaWMgaW1wb3J0IHN1cHBvcnQgKGVnIEZpcmVmb3ggNngpXHJcbiAgbGV0IHN1cHBvcnRzSnNvbkFzc2VydGlvbnMgPSBmYWxzZTtcclxuICBsZXQgc3VwcG9ydHNDc3NBc3NlcnRpb25zID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHN1cHBvcnRzID0gaGFzRG9jdW1lbnQgJiYgSFRNTFNjcmlwdEVsZW1lbnQuc3VwcG9ydHM7XHJcblxyXG4gIGxldCBzdXBwb3J0c0ltcG9ydE1hcHMgPSBzdXBwb3J0cyAmJiBzdXBwb3J0cy5uYW1lID09PSAnc3VwcG9ydHMnICYmIHN1cHBvcnRzKCdpbXBvcnRtYXAnKTtcclxuICBsZXQgc3VwcG9ydHNJbXBvcnRNZXRhID0gc3VwcG9ydHNEeW5hbWljSW1wb3J0O1xyXG4gIGxldCBzdXBwb3J0c1dhc21Nb2R1bGVzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGltcG9ydE1ldGFDaGVjayA9ICdpbXBvcnQubWV0YSc7XHJcbiAgY29uc3QgbW9kdWxlQ2hlY2sgPSAnaW1wb3J0XCJ4XCInO1xyXG4gIGNvbnN0IGNzc01vZHVsZXNDaGVjayA9IGBhc3NlcnR7dHlwZTpcImNzc1wifWA7XHJcbiAgY29uc3QganNvbk1vZHVsZXNDaGVjayA9IGBhc3NlcnR7dHlwZTpcImpzb25cIn1gO1xyXG5cclxuICBsZXQgZmVhdHVyZURldGVjdGlvblByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoZHluYW1pY0ltcG9ydENoZWNrKS50aGVuKCgpID0+IHtcclxuICAgIGlmICghc3VwcG9ydHNEeW5hbWljSW1wb3J0KVxyXG4gICAgICByZXR1cm47XHJcbiAgICBpZiAoIWhhc0RvY3VtZW50KVxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xyXG4gICAgICAgIHN1cHBvcnRzSW1wb3J0TWFwcyB8fCBkeW5hbWljSW1wb3J0KGNyZWF0ZUJsb2IoaW1wb3J0TWV0YUNoZWNrKSkudGhlbigoKSA9PiBzdXBwb3J0c0ltcG9ydE1ldGEgPSB0cnVlLCBub29wKSxcclxuICAgICAgICBjc3NNb2R1bGVzRW5hYmxlZCAmJiBkeW5hbWljSW1wb3J0KGNyZWF0ZUJsb2IobW9kdWxlQ2hlY2sucmVwbGFjZSgneCcsIGNyZWF0ZUJsb2IoJycsICd0ZXh0L2NzcycpKSArIGNzc01vZHVsZXNDaGVjaykpLnRoZW4oKCkgPT4gc3VwcG9ydHNDc3NBc3NlcnRpb25zID0gdHJ1ZSwgbm9vcCksXHJcbiAgICAgICAganNvbk1vZHVsZXNFbmFibGVkICYmIGR5bmFtaWNJbXBvcnQoY3JlYXRlQmxvYihtb2R1bGVDaGVjay5yZXBsYWNlKCd4JywgY3JlYXRlQmxvYigne30nLCAndGV4dC9qc29uJykpICsganNvbk1vZHVsZXNDaGVjaykpLnRoZW4oKCkgPT4gc3VwcG9ydHNKc29uQXNzZXJ0aW9ucyA9IHRydWUsIG5vb3ApLFxyXG4gICAgICAgIHdhc21Nb2R1bGVzRW5hYmxlZCAmJiBkeW5hbWljSW1wb3J0KGNyZWF0ZUJsb2IobW9kdWxlQ2hlY2sucmVwbGFjZSgneCcsIGNyZWF0ZUJsb2IobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwXSksICdhcHBsaWNhdGlvbi93YXNtJykpKSkudGhlbigoKSA9PiBzdXBwb3J0c1dhc21Nb2R1bGVzID0gdHJ1ZSwgbm9vcCksXHJcbiAgICAgIF0pO1xyXG5cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XHJcbiAgICAgIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdub25jZScsIG5vbmNlKTtcclxuICAgICAgZnVuY3Rpb24gY2IgKHsgZGF0YSB9KSB7XHJcbiAgICAgICAgY29uc3QgaXNGZWF0dXJlRGV0ZWN0aW9uTWVzc2FnZSA9IEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgZGF0YVswXSA9PT0gJ2VzbXMnO1xyXG4gICAgICAgIGlmICghaXNGZWF0dXJlRGV0ZWN0aW9uTWVzc2FnZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdXBwb3J0c0ltcG9ydE1hcHMgPSBkYXRhWzFdO1xyXG4gICAgICAgIHN1cHBvcnRzSW1wb3J0TWV0YSA9IGRhdGFbMl07XHJcbiAgICAgICAgc3VwcG9ydHNDc3NBc3NlcnRpb25zID0gZGF0YVszXTtcclxuICAgICAgICBzdXBwb3J0c0pzb25Bc3NlcnRpb25zID0gZGF0YVs0XTtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChpZnJhbWUpO1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgY2IsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGNiLCBmYWxzZSk7XHJcblxyXG4gICAgICBjb25zdCBpbXBvcnRNYXBUZXN0ID0gYDxzY3JpcHQgbm9uY2U9JHtub25jZSB8fCAnJ30+Yj0ocyx0eXBlPSd0ZXh0L2phdmFzY3JpcHQnKT0+VVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbc10se3R5cGV9KSk7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChPYmplY3QuYXNzaWduKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLHt0eXBlOidpbXBvcnRtYXAnLG5vbmNlOlwiJHtub25jZX1cIixpbm5lclRleHQ6XFxge1wiaW1wb3J0c1wiOntcInhcIjpcIlxcJHtiKCcnKX1cIn19XFxgfSkpO1Byb21pc2UuYWxsKFske1xyXG4gICAgICBzdXBwb3J0c0ltcG9ydE1hcHMgPyAndHJ1ZSx0cnVlJyA6IGAneCcsYignJHtpbXBvcnRNZXRhQ2hlY2t9JylgfSwgJHtjc3NNb2R1bGVzRW5hYmxlZCA/IGBiKCcke2Nzc01vZHVsZXNDaGVja30nLnJlcGxhY2UoJ3gnLGIoJycsJ3RleHQvY3NzJykpKWAgOiAnZmFsc2UnfSwgJHtcclxuICAgICAganNvbk1vZHVsZXNFbmFibGVkID8gYGIoJyR7anNvbk1vZHVsZXNDaGVja30nLnJlcGxhY2UoJ3gnLGIoJ3t9JywndGV4dC9qc29uJykpKWAgOiAnZmFsc2UnfV0ubWFwKHggPT50eXBlb2YgeD09PSdzdHJpbmcnP2ltcG9ydCh4KS50aGVuKHggPT4hIXgsKCk9PmZhbHNlKTp4KSkudGhlbihhPT5wYXJlbnQucG9zdE1lc3NhZ2UoWydlc21zJ10uY29uY2F0KGEpLCcqJykpPCR7Jyd9L3NjcmlwdD5gO1xyXG5cclxuICAgICAgLy8gU2FmYXJpIHdpbGwgY2FsbCBvbmxvYWQgZWFnZXJseSBvbiBoZWFkIGluamVjdGlvbiwgYnV0IHdlIGRvbid0IHdhbnQgdGhlIFdlY2hhdFxyXG4gICAgICAvLyBwYXRoIHRvIHRyaWdnZXIgYmVmb3JlIHNldHRpbmcgc3JjZG9jLCB0aGVyZWZvcmUgd2UgdHJhY2sgdGhlIHRpbWluZ1xyXG4gICAgICBsZXQgcmVhZHlGb3JPbmxvYWQgPSBmYWxzZSwgb25sb2FkQ2FsbGVkV2hpbGVOb3RSZWFkeSA9IGZhbHNlO1xyXG4gICAgICBmdW5jdGlvbiBkb09ubG9hZCAoKSB7XHJcbiAgICAgICAgaWYgKCFyZWFkeUZvck9ubG9hZCkge1xyXG4gICAgICAgICAgb25sb2FkQ2FsbGVkV2hpbGVOb3RSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFdlQ2hhdCBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBzZXR0aW5nIHNyY2RvYyBzY3JpcHRzXHJcbiAgICAgICAgLy8gQnV0IGlmcmFtZSBzYW5kYm94ZXMgZG9uJ3Qgc3VwcG9ydCBjb250ZW50RG9jdW1lbnQgc28gd2UgZG8gdGhpcyBhcyBhIGZhbGxiYWNrXHJcbiAgICAgICAgY29uc3QgZG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDtcclxuICAgICAgICBpZiAoZG9jICYmIGRvYy5oZWFkLmNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBjb25zdCBzID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgICAgICAgaWYgKG5vbmNlKVxyXG4gICAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCBub25jZSk7XHJcbiAgICAgICAgICBzLmlubmVySFRNTCA9IGltcG9ydE1hcFRlc3Quc2xpY2UoMTUgKyAobm9uY2UgPyBub25jZS5sZW5ndGggOiAwKSwgLTkpO1xyXG4gICAgICAgICAgZG9jLmhlYWQuYXBwZW5kQ2hpbGQocyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZnJhbWUub25sb2FkID0gZG9PbmxvYWQ7XHJcbiAgICAgIC8vIFdlQ2hhdCBicm93c2VyIHJlcXVpcmVzIGFwcGVuZCBiZWZvcmUgc2V0dGluZyBzcmNkb2NcclxuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpZnJhbWUpO1xyXG5cclxuICAgICAgLy8gc2V0dGluZyBzcmNkb2MgaXMgbm90IHN1cHBvcnRlZCBpbiBSZWFjdCBuYXRpdmUgd2Vidmlld3Mgb24gaU9TXHJcbiAgICAgIC8vIHNldHRpbmcgc3JjIHRvIGEgYmxvYiBVUkwgcmVzdWx0cyBpbiBhIG5hdmlnYXRpb24gZXZlbnQgaW4gd2Vidmlld3NcclxuICAgICAgLy8gZG9jdW1lbnQud3JpdGUgZ2l2ZXMgdXNhYmlsaXR5IHdhcm5pbmdzXHJcbiAgICAgIHJlYWR5Rm9yT25sb2FkID0gdHJ1ZTtcclxuICAgICAgaWYgKCdzcmNkb2MnIGluIGlmcmFtZSlcclxuICAgICAgICBpZnJhbWUuc3JjZG9jID0gaW1wb3J0TWFwVGVzdDtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQud3JpdGUoaW1wb3J0TWFwVGVzdCk7XHJcbiAgICAgIC8vIHJldHJpZ2dlciBvbmxvYWQgZm9yIFNhZmFyaSBvbmx5IGlmIG5lY2Vzc2FyeVxyXG4gICAgICBpZiAob25sb2FkQ2FsbGVkV2hpbGVOb3RSZWFkeSkgZG9PbmxvYWQoKTtcclxuICAgIH0pO1xyXG4gIH0pO1xuXG4gIC8qIGVzLW1vZHVsZS1sZXhlciAxLjQuMSAqL1xuICBsZXQgZSxhLHIsaT0yPDwxOTtjb25zdCBzPTE9PT1uZXcgVWludDhBcnJheShuZXcgVWludDE2QXJyYXkoWzFdKS5idWZmZXIpWzBdP2Z1bmN0aW9uKGUsYSl7Y29uc3Qgcj1lLmxlbmd0aDtsZXQgaT0wO2Zvcig7aTxyOylhW2ldPWUuY2hhckNvZGVBdChpKyspO306ZnVuY3Rpb24oZSxhKXtjb25zdCByPWUubGVuZ3RoO2xldCBpPTA7Zm9yKDtpPHI7KXtjb25zdCByPWUuY2hhckNvZGVBdChpKTthW2krK109KDI1NSZyKTw8OHxyPj4+ODt9fSx0PVwieHBvcnRtcG9ydGxhc3NldGFyb21zeW5jdW5jdGlvbnNzZXJ0dm95aWVkZWxlY29udGluaW5zdGFudHlicmVhcmV0dXJkZWJ1Z2dlYXdhaXRocndoaWxlZm9yaWZjYXRjZmluYWxsZWxzXCI7bGV0IGYsYyQxLG47ZnVuY3Rpb24gcGFyc2UobCxrPVwiQFwiKXtmPWwsYyQxPWs7Y29uc3QgdT0yKmYubGVuZ3RoKygyPDwxOCk7aWYodT5pfHwhZSl7Zm9yKDt1Pmk7KWkqPTI7YT1uZXcgQXJyYXlCdWZmZXIoaSkscyh0LG5ldyBVaW50MTZBcnJheShhLDE2LDEwNSkpLGU9ZnVuY3Rpb24oZSxhLHIpe1widXNlIGFzbVwiO3ZhciBpPW5ldyBlLkludDhBcnJheShyKSxzPW5ldyBlLkludDE2QXJyYXkociksdD1uZXcgZS5JbnQzMkFycmF5KHIpLGY9bmV3IGUuVWludDhBcnJheShyKSxjPW5ldyBlLlVpbnQxNkFycmF5KHIpLG49MTAyNDtmdW5jdGlvbiBiKCl7dmFyIGU9MCxhPTAscj0wLGY9MCxiPTAsdT0wO3U9bjtuPW4rMTAyNDB8MDtpWzc5Nl09MTtpWzc5NV09MDtzWzM5NV09MDtzWzM5Nl09MDt0WzY3XT10WzJdO2lbNzk3XT0wO3RbNjZdPTA7aVs3OTRdPTA7dFs2OF09dSsyMDQ4O3RbNjldPXU7aVs3OThdPTA7ZT0odFszXXwwKSstMnwwO3RbNzBdPWU7YT1lKyh0WzY0XTw8MSl8MDt0WzcxXT1hO2U6d2hpbGUoMSl7cj1lKzJ8MDt0WzcwXT1yO2lmKGU+Pj4wPj1hPj4+MCl7Yj0xODticmVha31hOmRve3N3aXRjaChzW3I+PjFdfDApe2Nhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDEzOmNhc2UgMzI6YnJlYWs7Y2FzZSAxMDE6e2lmKCgoKHNbMzk2XXwwKT09MD9IKHIpfDA6MCk/KG0oZSs0fDAsMTYsMTApfDApPT0wOjApPyhsKCksKGlbNzk2XXwwKT09MCk6MCl7Yj05O2JyZWFrIGV9ZWxzZSBiPTE3O2JyZWFrfWNhc2UgMTA1OntpZihIKHIpfDA/KG0oZSs0fDAsMjYsMTApfDApPT0wOjApe2soKTtiPTE3O31lbHNlIGI9MTc7YnJlYWt9Y2FzZSA1OTp7Yj0xNzticmVha31jYXNlIDQ3OnN3aXRjaChzW2UrND4+MV18MCl7Y2FzZSA0Nzp7UCgpO2JyZWFrIGF9Y2FzZSA0Mjp7eSgxKTticmVhayBhfWRlZmF1bHQ6e2I9MTY7YnJlYWsgZX19ZGVmYXVsdDp7Yj0xNjticmVhayBlfX19d2hpbGUoMCk7aWYoKGJ8MCk9PTE3KXtiPTA7dFs2N109dFs3MF07fWU9dFs3MF18MDthPXRbNzFdfDA7fWlmKChifDApPT05KXtlPXRbNzBdfDA7dFs2N109ZTtiPTE5O31lbHNlIGlmKChifDApPT0xNil7aVs3OTZdPTA7dFs3MF09ZTtiPTE5O31lbHNlIGlmKChifDApPT0xOClpZighKGlbNzk0XXwwKSl7ZT1yO2I9MTk7fWVsc2UgZT0wO2Rve2lmKChifDApPT0xOSl7ZTp3aGlsZSgxKXthPWUrMnwwO3RbNzBdPWE7aWYoZT4+PjA+PSh0WzcxXXwwKT4+PjApe2I9ODI7YnJlYWt9YTpkb3tzd2l0Y2goc1thPj4xXXwwKXtjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTI6Y2FzZSAxMzpjYXNlIDMyOmJyZWFrO2Nhc2UgMTAxOntpZigoKHNbMzk2XXwwKT09MD9IKGEpfDA6MCk/KG0oZSs0fDAsMTYsMTApfDApPT0wOjApe2woKTtiPTgxO31lbHNlIGI9ODE7YnJlYWt9Y2FzZSAxMDU6e2lmKEgoYSl8MD8obShlKzR8MCwyNiwxMCl8MCk9PTA6MCl7aygpO2I9ODE7fWVsc2UgYj04MTticmVha31jYXNlIDk5OntpZigoSChhKXwwPyhtKGUrNHwwLDM2LDgpfDApPT0wOjApP1Yoc1tlKzEyPj4xXXwwKXwwOjApe2lbNzk4XT0xO2I9ODE7fWVsc2UgYj04MTticmVha31jYXNlIDQwOntmPXRbNjhdfDA7YT1zWzM5Nl18MDtiPWEmNjU1MzU7dFtmKyhiPDwzKT4+Ml09MTtyPXRbNjddfDA7c1szOTZdPWErMTw8MTY+PjE2O3RbZisoYjw8MykrND4+Ml09cjtiPTgxO2JyZWFrfWNhc2UgNDE6e2E9c1szOTZdfDA7aWYoIShhPDwxNj4+MTYpKXtiPTM2O2JyZWFrIGV9Yj1hKy0xPDwxNj4+MTY7c1szOTZdPWI7Zj1zWzM5NV18MDthPWYmNjU1MzU7aWYoZjw8MTY+PjE2IT0wPyh0Wyh0WzY4XXwwKSsoKGImNjU1MzUpPDwzKT4+Ml18MCk9PTU6MCl7YT10Wyh0WzY5XXwwKSsoYSstMTw8Mik+PjJdfDA7cj1hKzR8MDtpZighKHRbcj4+Ml18MCkpdFtyPj4yXT0odFs2N118MCkrMjt0W2ErMTI+PjJdPWUrNDtzWzM5NV09ZistMTw8MTY+PjE2O2I9ODE7fWVsc2UgYj04MTticmVha31jYXNlIDEyMzp7Yj10WzY3XXwwO2Y9dFs2MV18MDtlPWI7ZG97aWYoKHNbYj4+MV18MCk9PTQxJihmfDApIT0wPyh0W2YrND4+Ml18MCk9PShifDApOjApe2E9dFs2Ml18MDt0WzYxXT1hO2lmKCFhKXt0WzU3XT0wO2JyZWFrfWVsc2Uge3RbYSsyOD4+Ml09MDticmVha319fXdoaWxlKDApO2Y9dFs2OF18MDtyPXNbMzk2XXwwO2I9ciY2NTUzNTt0W2YrKGI8PDMpPj4yXT0oaVs3OThdfDApPT0wPzI6NjtzWzM5Nl09cisxPDwxNj4+MTY7dFtmKyhiPDwzKSs0Pj4yXT1lO2lbNzk4XT0wO2I9ODE7YnJlYWt9Y2FzZSAxMjU6e2U9c1szOTZdfDA7aWYoIShlPDwxNj4+MTYpKXtiPTQ5O2JyZWFrIGV9Zj10WzY4XXwwO2I9ZSstMTw8MTY+PjE2O3NbMzk2XT1iO2lmKCh0W2YrKChiJjY1NTM1KTw8Myk+PjJdfDApPT00KXtoKCk7Yj04MTt9ZWxzZSBiPTgxO2JyZWFrfWNhc2UgMzk6e2QoMzkpO2I9ODE7YnJlYWt9Y2FzZSAzNDp7ZCgzNCk7Yj04MTticmVha31jYXNlIDQ3OnN3aXRjaChzW2UrND4+MV18MCl7Y2FzZSA0Nzp7UCgpO2JyZWFrIGF9Y2FzZSA0Mjp7eSgxKTticmVhayBhfWRlZmF1bHQ6e2U9dFs2N118MDtmPXNbZT4+MV18MDtyOmRve2lmKCEoVShmKXwwKSl7c3dpdGNoKGY8PDE2Pj4xNil7Y2FzZSA0MTppZihEKHRbKHRbNjhdfDApKyhjWzM5Nl08PDMpKzQ+PjJdfDApfDApe2I9Njk7YnJlYWsgcn1lbHNlIHtiPTY2O2JyZWFrIHJ9Y2FzZSAxMjU6YnJlYWs7ZGVmYXVsdDp7Yj02NjticmVhayByfX1hPXRbNjhdfDA7cj1jWzM5Nl18MDtpZighKHAodFthKyhyPDwzKSs0Pj4yXXwwKXwwKT8odFthKyhyPDwzKT4+Ml18MCkhPTY6MCliPTY2O2Vsc2UgYj02OTt9ZWxzZSBzd2l0Y2goZjw8MTY+PjE2KXtjYXNlIDQ2OmlmKCgoc1tlKy0yPj4xXXwwKSstNDgmNjU1MzUpPDEwKXtiPTY2O2JyZWFrIHJ9ZWxzZSB7Yj02OTticmVhayByfWNhc2UgNDM6aWYoKHNbZSstMj4+MV18MCk9PTQzKXtiPTY2O2JyZWFrIHJ9ZWxzZSB7Yj02OTticmVhayByfWNhc2UgNDU6aWYoKHNbZSstMj4+MV18MCk9PTQ1KXtiPTY2O2JyZWFrIHJ9ZWxzZSB7Yj02OTticmVhayByfWRlZmF1bHQ6e2I9Njk7YnJlYWsgcn19fXdoaWxlKDApO3I6ZG97aWYoKGJ8MCk9PTY2KXtiPTA7aWYoIShvKGUpfDApKXtzd2l0Y2goZjw8MTY+PjE2KXtjYXNlIDA6e2I9Njk7YnJlYWsgcn1jYXNlIDQ3OntpZihpWzc5N118MCl7Yj02OTticmVhayByfWJyZWFrfWRlZmF1bHQ6e319cj10WzNdfDA7YT1mO2Rve2lmKGU+Pj4wPD1yPj4+MClicmVhaztlPWUrLTJ8MDt0WzY3XT1lO2E9c1tlPj4xXXwwO313aGlsZSghKEUoYSl8MCkpO2lmKEYoYSl8MCl7ZG97aWYoZT4+PjA8PXI+Pj4wKWJyZWFrO2U9ZSstMnwwO3RbNjddPWU7fXdoaWxlKEYoc1tlPj4xXXwwKXwwKTtpZihqKGUpfDApe2coKTtpWzc5N109MDtiPTgxO2JyZWFrIGF9ZWxzZSBlPTE7fWVsc2UgZT0xO31lbHNlIGI9Njk7fX13aGlsZSgwKTtpZigoYnwwKT09Njkpe2coKTtlPTA7fWlbNzk3XT1lO2I9ODE7YnJlYWsgYX19Y2FzZSA5Njp7Zj10WzY4XXwwO3I9c1szOTZdfDA7Yj1yJjY1NTM1O3RbZisoYjw8MykrND4+Ml09dFs2N107c1szOTZdPXIrMTw8MTY+PjE2O3RbZisoYjw8Myk+PjJdPTM7aCgpO2I9ODE7YnJlYWt9ZGVmYXVsdDpiPTgxO319d2hpbGUoMCk7aWYoKGJ8MCk9PTgxKXtiPTA7dFs2N109dFs3MF07fWU9dFs3MF18MDt9aWYoKGJ8MCk9PTM2KXtUKCk7ZT0wO2JyZWFrfWVsc2UgaWYoKGJ8MCk9PTQ5KXtUKCk7ZT0wO2JyZWFrfWVsc2UgaWYoKGJ8MCk9PTgyKXtlPShpWzc5NF18MCk9PTA/KHNbMzk1XXxzWzM5Nl0pPDwxNj4+MTY9PTA6MDticmVha319fXdoaWxlKDApO249dTtyZXR1cm4gZXwwfWZ1bmN0aW9uIGwoKXt2YXIgZT0wLGE9MCxyPTAsZj0wLGM9MCxuPTAsYj0wLGw9MCxrPTAsbz0wLGg9MCx2PTAsQz0wLGc9MDtsPXRbNzBdfDA7az10WzYzXXwwO2c9bCsxMnwwO3RbNzBdPWc7cj13KDEpfDA7ZT10WzcwXXwwO2lmKCEoKGV8MCk9PShnfDApPyEoSShyKXwwKTowKSlDPTM7ZTpkb3tpZigoQ3wwKT09Myl7YTpkb3tzd2l0Y2gocjw8MTY+PjE2KXtjYXNlIDEyMzp7dFs3MF09ZSsyO2U9dygxKXwwO2E9dFs3MF18MDt3aGlsZSgxKXtpZihXKGUpfDApe2QoZSk7ZT0odFs3MF18MCkrMnwwO3RbNzBdPWU7fWVsc2Uge3EoZSl8MDtlPXRbNzBdfDA7fXcoMSl8MDtlPUEoYSxlKXwwO2lmKGU8PDE2Pj4xNj09NDQpe3RbNzBdPSh0WzcwXXwwKSsyO2U9dygxKXwwO31pZihlPDwxNj4+MTY9PTEyNSl7Qz0xNTticmVha31nPWE7YT10WzcwXXwwO2lmKChhfDApPT0oZ3wwKSl7Qz0xMjticmVha31pZihhPj4+MD4odFs3MV18MCk+Pj4wKXtDPTE0O2JyZWFrfX1pZigoQ3wwKT09MTIpe1QoKTticmVhayBlfWVsc2UgaWYoKEN8MCk9PTE0KXtUKCk7YnJlYWsgZX1lbHNlIGlmKChDfDApPT0xNSl7aVs3OTVdPTE7dFs3MF09KHRbNzBdfDApKzI7YnJlYWsgYX1icmVha31jYXNlIDQyOnt0WzcwXT1lKzI7dygxKXwwO2c9dFs3MF18MDtBKGcsZyl8MDticmVha31kZWZhdWx0OntpWzc5Nl09MDtzd2l0Y2gocjw8MTY+PjE2KXtjYXNlIDEwMDp7bD1lKzE0fDA7dFs3MF09bDtzd2l0Y2goKHcoMSl8MCk8PDE2Pj4xNil7Y2FzZSA5Nzp7YT10WzcwXXwwO2lmKChtKGErMnwwLDU2LDgpfDApPT0wPyhjPWErMTB8MCxGKHNbYz4+MV18MCl8MCk6MCl7dFs3MF09Yzt3KDApfDA7Qz0yMjt9YnJlYWt9Y2FzZSAxMDI6e0M9MjI7YnJlYWt9Y2FzZSA5OTp7YT10WzcwXXwwO2lmKCgobShhKzJ8MCwzNiw4KXwwKT09MD8oZj1hKzEwfDAsZz1zW2Y+PjFdfDAsVihnKXwwfGc8PDE2Pj4xNj09MTIzKTowKT8odFs3MF09ZixuPXcoMSl8MCxuPDwxNj4+MTYhPTEyMyk6MCl7dj1uO0M9MzE7fWJyZWFrfWRlZmF1bHQ6e319cjpkb3tpZigoQ3wwKT09MjI/KGI9dFs3MF18MCwobShiKzJ8MCw2NCwxNCl8MCk9PTApOjApe3I9YisxNnwwO2E9c1tyPj4xXXwwO2lmKCEoVihhKXwwKSlzd2l0Y2goYTw8MTY+PjE2KXtjYXNlIDQwOmNhc2UgNDI6YnJlYWs7ZGVmYXVsdDpicmVhayByfXRbNzBdPXI7YT13KDEpfDA7aWYoYTw8MTY+PjE2PT00Mil7dFs3MF09KHRbNzBdfDApKzI7YT13KDEpfDA7fWlmKGE8PDE2Pj4xNiE9NDApe3Y9YTtDPTMxO319fXdoaWxlKDApO2lmKChDfDApPT0zMT8obz10WzcwXXwwLHEodil8MCxoPXRbNzBdfDAsaD4+PjA+bz4+PjApOjApe08oZSxsLG8saCk7dFs3MF09KHRbNzBdfDApKy0yO2JyZWFrIGV9TyhlLGwsMCwwKTt0WzcwXT1lKzEyO2JyZWFrIGV9Y2FzZSA5Nzp7dFs3MF09ZSsxMDt3KDApfDA7ZT10WzcwXXwwO0M9MzU7YnJlYWt9Y2FzZSAxMDI6e0M9MzU7YnJlYWt9Y2FzZSA5OTp7aWYoKG0oZSsyfDAsMzYsOCl8MCk9PTA/KGE9ZSsxMHwwLEUoc1thPj4xXXwwKXwwKTowKXt0WzcwXT1hO2c9dygxKXwwO0M9dFs3MF18MDtxKGcpfDA7Zz10WzcwXXwwO08oQyxnLEMsZyk7dFs3MF09KHRbNzBdfDApKy0yO2JyZWFrIGV9ZT1lKzR8MDt0WzcwXT1lO2JyZWFrfWNhc2UgMTA4OmNhc2UgMTE4OmJyZWFrO2RlZmF1bHQ6YnJlYWsgZX1pZigoQ3wwKT09MzUpe3RbNzBdPWUrMTY7ZT13KDEpfDA7aWYoZTw8MTY+PjE2PT00Mil7dFs3MF09KHRbNzBdfDApKzI7ZT13KDEpfDA7fUM9dFs3MF18MDtxKGUpfDA7Zz10WzcwXXwwO08oQyxnLEMsZyk7dFs3MF09KHRbNzBdfDApKy0yO2JyZWFrIGV9dFs3MF09ZSs2O2lbNzk2XT0wO3I9dygxKXwwO2U9dFs3MF18MDtyPShxKHIpfDB8MzIpPDwxNj4+MTY9PTEyMztmPXRbNzBdfDA7aWYocil7dFs3MF09ZisyO2c9dygxKXwwO2U9dFs3MF18MDtxKGcpfDA7fXI6d2hpbGUoMSl7YT10WzcwXXwwO2lmKChhfDApPT0oZXwwKSlicmVhaztPKGUsYSxlLGEpO2E9dygxKXwwO2lmKHIpc3dpdGNoKGE8PDE2Pj4xNil7Y2FzZSA5MzpjYXNlIDEyNTpicmVhayBlO2RlZmF1bHQ6e319ZT10WzcwXXwwO2lmKGE8PDE2Pj4xNiE9NDQpe0M9NTE7YnJlYWt9dFs3MF09ZSsyO2E9dygxKXwwO2U9dFs3MF18MDtzd2l0Y2goYTw8MTY+PjE2KXtjYXNlIDkxOmNhc2UgMTIzOntDPTUxO2JyZWFrIHJ9ZGVmYXVsdDp7fX1xKGEpfDA7fWlmKChDfDApPT01MSl0WzcwXT1lKy0yO2lmKCFyKWJyZWFrIGU7dFs3MF09ZistMjticmVhayBlfX19d2hpbGUoMCk7Zz0odygxKXwwKTw8MTY+PjE2PT0xMDI7ZT10WzcwXXwwO2lmKGc/KG0oZSsyfDAsNTAsNil8MCk9PTA6MCl7dFs3MF09ZSs4O3UobCx3KDEpfDApO2U9KGt8MCk9PTA/MjMyOmsrMTZ8MDt3aGlsZSgxKXtlPXRbZT4+Ml18MDtpZighZSlicmVhayBlO3RbZSsxMj4+Ml09MDt0W2UrOD4+Ml09MDtlPWUrMTZ8MDt9fXRbNzBdPWUrLTI7fX13aGlsZSgwKTtyZXR1cm59ZnVuY3Rpb24gaygpe3ZhciBlPTAsYT0wLHI9MCxmPTAsYz0wLG49MDtjPXRbNzBdfDA7ZT1jKzEyfDA7dFs3MF09ZTtlOmRve3N3aXRjaCgodygxKXwwKTw8MTY+PjE2KXtjYXNlIDQwOnthPXRbNjhdfDA7bj1zWzM5Nl18MDtyPW4mNjU1MzU7dFthKyhyPDwzKT4+Ml09NTtlPXRbNzBdfDA7c1szOTZdPW4rMTw8MTY+PjE2O3RbYSsocjw8MykrND4+Ml09ZTtpZigoc1t0WzY3XT4+MV18MCkhPTQ2KXt0WzcwXT1lKzI7bj13KDEpfDA7dihjLHRbNzBdfDAsMCxlKTthPXRbNjFdfDA7cj10WzY5XXwwO2M9c1szOTVdfDA7c1szOTVdPWMrMTw8MTY+PjE2O3RbcisoKGMmNjU1MzUpPDwyKT4+Ml09YTtzd2l0Y2gobjw8MTY+PjE2KXtjYXNlIDM5OntkKDM5KTticmVha31jYXNlIDM0OntkKDM0KTticmVha31kZWZhdWx0Ont0WzcwXT0odFs3MF18MCkrLTI7YnJlYWsgZX19ZT0odFs3MF18MCkrMnwwO3RbNzBdPWU7c3dpdGNoKCh3KDEpfDApPDwxNj4+MTYpe2Nhc2UgNDQ6e3RbNzBdPSh0WzcwXXwwKSsyO3coMSl8MDtjPXRbNjFdfDA7dFtjKzQ+PjJdPWU7bj10WzcwXXwwO3RbYysxNj4+Ml09bjtpW2MrMjQ+PjBdPTE7dFs3MF09bistMjticmVhayBlfWNhc2UgNDE6e3NbMzk2XT0oc1szOTZdfDApKy0xPDwxNj4+MTY7bj10WzYxXXwwO3Rbbis0Pj4yXT1lO3RbbisxMj4+Ml09KHRbNzBdfDApKzI7aVtuKzI0Pj4wXT0xO3NbMzk1XT0oc1szOTVdfDApKy0xPDwxNj4+MTY7YnJlYWsgZX1kZWZhdWx0Ont0WzcwXT0odFs3MF18MCkrLTI7YnJlYWsgZX19fWJyZWFrfWNhc2UgNDY6e3RbNzBdPSh0WzcwXXwwKSsyO2lmKCh3KDEpfDApPDwxNj4+MTY9PTEwOT8oYT10WzcwXXwwLChtKGErMnwwLDQ0LDYpfDApPT0wKTowKXtlPXRbNjddfDA7aWYoIShHKGUpfDApPyhzW2U+PjFdfDApPT00NjowKWJyZWFrIGU7dihjLGMsYSs4fDAsMik7fWJyZWFrfWNhc2UgNDI6Y2FzZSAzOTpjYXNlIDM0OntmPTE4O2JyZWFrfWNhc2UgMTIzOntlPXRbNzBdfDA7aWYoc1szOTZdfDApe3RbNzBdPWUrLTI7YnJlYWsgZX13aGlsZSgxKXtpZihlPj4+MD49KHRbNzFdfDApPj4+MClicmVhaztlPXcoMSl8MDtpZighKFcoZSl8MCkpe2lmKGU8PDE2Pj4xNj09MTI1KXtmPTMzO2JyZWFrfX1lbHNlIGQoZSk7ZT0odFs3MF18MCkrMnwwO3RbNzBdPWU7fWlmKChmfDApPT0zMyl0WzcwXT0odFs3MF18MCkrMjtuPSh3KDEpfDApPDwxNj4+MTY9PTEwMjtlPXRbNzBdfDA7aWYobj9tKGUrMnwwLDUwLDYpfDA6MCl7VCgpO2JyZWFrIGV9dFs3MF09ZSs4O2U9dygxKXwwO2lmKFcoZSl8MCl7dShjLGUpO2JyZWFrIGV9ZWxzZSB7VCgpO2JyZWFrIGV9fWRlZmF1bHQ6aWYoKHRbNzBdfDApPT0oZXwwKSl0WzcwXT1jKzEwO2Vsc2UgZj0xODt9fXdoaWxlKDApO2Rve2lmKChmfDApPT0xOCl7aWYoc1szOTZdfDApe3RbNzBdPSh0WzcwXXwwKSstMjticmVha31lPXRbNzFdfDA7YT10WzcwXXwwO3doaWxlKDEpe2lmKGE+Pj4wPj1lPj4+MCl7Zj0yNTticmVha31yPXNbYT4+MV18MDtpZihXKHIpfDApe2Y9MjM7YnJlYWt9bj1hKzJ8MDt0WzcwXT1uO2E9bjt9aWYoKGZ8MCk9PTIzKXt1KGMscik7YnJlYWt9ZWxzZSBpZigoZnwwKT09MjUpe1QoKTticmVha319fXdoaWxlKDApO3JldHVybn1mdW5jdGlvbiB1KGUsYSl7ZT1lfDA7YT1hfDA7dmFyIHI9MCxpPTA7cj0odFs3MF18MCkrMnwwO3N3aXRjaChhPDwxNj4+MTYpe2Nhc2UgMzk6e2QoMzkpO2k9NTticmVha31jYXNlIDM0OntkKDM0KTtpPTU7YnJlYWt9ZGVmYXVsdDpUKCk7fWRve2lmKChpfDApPT01KXt2KGUscix0WzcwXXwwLDEpO3RbNzBdPSh0WzcwXXwwKSsyO2E9dygwKXwwO2U9YTw8MTY+PjE2PT05NztpZihlKXtyPXRbNzBdfDA7aWYobShyKzJ8MCw3OCwxMCl8MClpPTExO31lbHNlIHtyPXRbNzBdfDA7aWYoISgoKGE8PDE2Pj4xNj09MTE5PyhzW3IrMj4+MV18MCk9PTEwNTowKT8oc1tyKzQ+PjFdfDApPT0xMTY6MCk/KHNbcis2Pj4xXXwwKT09MTA0OjApKWk9MTE7fWlmKChpfDApPT0xMSl7dFs3MF09cistMjticmVha310WzcwXT1yKygoZT82OjQpPDwxKTtpZigodygxKXwwKTw8MTY+PjE2IT0xMjMpe3RbNzBdPXI7YnJlYWt9ZT10WzcwXXwwO2E9ZTtlOndoaWxlKDEpe3RbNzBdPWErMjthPXcoMSl8MDtzd2l0Y2goYTw8MTY+PjE2KXtjYXNlIDM5OntkKDM5KTt0WzcwXT0odFs3MF18MCkrMjthPXcoMSl8MDticmVha31jYXNlIDM0OntkKDM0KTt0WzcwXT0odFs3MF18MCkrMjthPXcoMSl8MDticmVha31kZWZhdWx0OmE9cShhKXwwO31pZihhPDwxNj4+MTYhPTU4KXtpPTIwO2JyZWFrfXRbNzBdPSh0WzcwXXwwKSsyO3N3aXRjaCgodygxKXwwKTw8MTY+PjE2KXtjYXNlIDM5OntkKDM5KTticmVha31jYXNlIDM0OntkKDM0KTticmVha31kZWZhdWx0OntpPTI0O2JyZWFrIGV9fXRbNzBdPSh0WzcwXXwwKSsyO3N3aXRjaCgodygxKXwwKTw8MTY+PjE2KXtjYXNlIDEyNTp7aT0yOTticmVhayBlfWNhc2UgNDQ6YnJlYWs7ZGVmYXVsdDp7aT0yODticmVhayBlfX10WzcwXT0odFs3MF18MCkrMjtpZigodygxKXwwKTw8MTY+PjE2PT0xMjUpe2k9Mjk7YnJlYWt9YT10WzcwXXwwO31pZigoaXwwKT09MjApe3RbNzBdPXI7YnJlYWt9ZWxzZSBpZigoaXwwKT09MjQpe3RbNzBdPXI7YnJlYWt9ZWxzZSBpZigoaXwwKT09Mjgpe3RbNzBdPXI7YnJlYWt9ZWxzZSBpZigoaXwwKT09Mjkpe2k9dFs2MV18MDt0W2krMTY+PjJdPWU7dFtpKzEyPj4yXT0odFs3MF18MCkrMjticmVha319fXdoaWxlKDApO3JldHVybn1mdW5jdGlvbiBvKGUpe2U9ZXwwO2U6ZG97c3dpdGNoKHNbZT4+MV18MCl7Y2FzZSAxMDA6c3dpdGNoKHNbZSstMj4+MV18MCl7Y2FzZSAxMDU6e2U9JChlKy00fDAsODgsMil8MDticmVhayBlfWNhc2UgMTA4OntlPSQoZSstNHwwLDkyLDMpfDA7YnJlYWsgZX1kZWZhdWx0OntlPTA7YnJlYWsgZX19Y2FzZSAxMDE6c3dpdGNoKHNbZSstMj4+MV18MCl7Y2FzZSAxMTU6c3dpdGNoKHNbZSstND4+MV18MCl7Y2FzZSAxMDg6e2U9QihlKy02fDAsMTAxKXwwO2JyZWFrIGV9Y2FzZSA5Nzp7ZT1CKGUrLTZ8MCw5OSl8MDticmVhayBlfWRlZmF1bHQ6e2U9MDticmVhayBlfX1jYXNlIDExNjp7ZT0kKGUrLTR8MCw5OCw0KXwwO2JyZWFrIGV9Y2FzZSAxMTc6e2U9JChlKy00fDAsMTA2LDYpfDA7YnJlYWsgZX1kZWZhdWx0OntlPTA7YnJlYWsgZX19Y2FzZSAxMDI6e2lmKChzW2UrLTI+PjFdfDApPT0xMTE/KHNbZSstND4+MV18MCk9PTEwMTowKXN3aXRjaChzW2UrLTY+PjFdfDApe2Nhc2UgOTk6e2U9JChlKy04fDAsMTE4LDYpfDA7YnJlYWsgZX1jYXNlIDExMjp7ZT0kKGUrLTh8MCwxMzAsMil8MDticmVhayBlfWRlZmF1bHQ6e2U9MDticmVhayBlfX1lbHNlIGU9MDticmVha31jYXNlIDEwNzp7ZT0kKGUrLTJ8MCwxMzQsNCl8MDticmVha31jYXNlIDExMDp7ZT1lKy0yfDA7aWYoQihlLDEwNSl8MCllPTE7ZWxzZSBlPSQoZSwxNDIsNSl8MDticmVha31jYXNlIDExMTp7ZT1CKGUrLTJ8MCwxMDApfDA7YnJlYWt9Y2FzZSAxMTQ6e2U9JChlKy0yfDAsMTUyLDcpfDA7YnJlYWt9Y2FzZSAxMTY6e2U9JChlKy0yfDAsMTY2LDQpfDA7YnJlYWt9Y2FzZSAxMTk6c3dpdGNoKHNbZSstMj4+MV18MCl7Y2FzZSAxMDE6e2U9QihlKy00fDAsMTEwKXwwO2JyZWFrIGV9Y2FzZSAxMTE6e2U9JChlKy00fDAsMTc0LDMpfDA7YnJlYWsgZX1kZWZhdWx0OntlPTA7YnJlYWsgZX19ZGVmYXVsdDplPTA7fX13aGlsZSgwKTtyZXR1cm4gZXwwfWZ1bmN0aW9uIGgoKXt2YXIgZT0wLGE9MCxyPTAsaT0wO2E9dFs3MV18MDtyPXRbNzBdfDA7ZTp3aGlsZSgxKXtlPXIrMnwwO2lmKHI+Pj4wPj1hPj4+MCl7YT0xMDticmVha31zd2l0Y2goc1tlPj4xXXwwKXtjYXNlIDk2OnthPTc7YnJlYWsgZX1jYXNlIDM2OntpZigoc1tyKzQ+PjFdfDApPT0xMjMpe2E9NjticmVhayBlfWJyZWFrfWNhc2UgOTI6e2U9cis0fDA7YnJlYWt9ZGVmYXVsdDp7fX1yPWU7fWlmKChhfDApPT02KXtlPXIrNHwwO3RbNzBdPWU7YT10WzY4XXwwO2k9c1szOTZdfDA7cj1pJjY1NTM1O3RbYSsocjw8Myk+PjJdPTQ7c1szOTZdPWkrMTw8MTY+PjE2O3RbYSsocjw8MykrND4+Ml09ZTt9ZWxzZSBpZigoYXwwKT09Nyl7dFs3MF09ZTtyPXRbNjhdfDA7aT0oc1szOTZdfDApKy0xPDwxNj4+MTY7c1szOTZdPWk7aWYoKHRbcisoKGkmNjU1MzUpPDwzKT4+Ml18MCkhPTMpVCgpO31lbHNlIGlmKChhfDApPT0xMCl7dFs3MF09ZTtUKCk7fXJldHVybn1mdW5jdGlvbiB3KGUpe2U9ZXwwO3ZhciBhPTAscj0wLGk9MDtyPXRbNzBdfDA7ZTpkb3thPXNbcj4+MV18MDthOmRve2lmKGE8PDE2Pj4xNiE9NDcpaWYoZSlpZihWKGEpfDApYnJlYWs7ZWxzZSBicmVhayBlO2Vsc2UgaWYoRihhKXwwKWJyZWFrO2Vsc2UgYnJlYWsgZTtlbHNlIHN3aXRjaChzW3IrMj4+MV18MCl7Y2FzZSA0Nzp7UCgpO2JyZWFrIGF9Y2FzZSA0Mjp7eShlKTticmVhayBhfWRlZmF1bHQ6e2E9NDc7YnJlYWsgZX19fXdoaWxlKDApO2k9dFs3MF18MDtyPWkrMnwwO3RbNzBdPXI7fXdoaWxlKGk+Pj4wPCh0WzcxXXwwKT4+PjApO3JldHVybiBhfDB9ZnVuY3Rpb24gZChlKXtlPWV8MDt2YXIgYT0wLHI9MCxpPTAsZj0wO2Y9dFs3MV18MDthPXRbNzBdfDA7d2hpbGUoMSl7aT1hKzJ8MDtpZihhPj4+MD49Zj4+PjApe2E9OTticmVha31yPXNbaT4+MV18MDtpZihyPDwxNj4+MTY9PWU8PDE2Pj4xNil7YT0xMDticmVha31pZihyPDwxNj4+MTY9PTkyKXtyPWErNHwwO2lmKChzW3I+PjFdfDApPT0xMyl7YT1hKzZ8MDthPShzW2E+PjFdfDApPT0xMD9hOnI7fWVsc2UgYT1yO31lbHNlIGlmKFoocil8MCl7YT05O2JyZWFrfWVsc2UgYT1pO31pZigoYXwwKT09OSl7dFs3MF09aTtUKCk7fWVsc2UgaWYoKGF8MCk9PTEwKXRbNzBdPWk7cmV0dXJufWZ1bmN0aW9uIHYoZSxhLHIscyl7ZT1lfDA7YT1hfDA7cj1yfDA7cz1zfDA7dmFyIGY9MCxjPTA7Zj10WzY1XXwwO3RbNjVdPWYrMzI7Yz10WzYxXXwwO3RbKChjfDApPT0wPzIyODpjKzI4fDApPj4yXT1mO3RbNjJdPWM7dFs2MV09Zjt0W2YrOD4+Ml09ZTtpZigyPT0oc3wwKSllPXI7ZWxzZSBlPTE9PShzfDApP3IrMnwwOjA7dFtmKzEyPj4yXT1lO3RbZj4+Ml09YTt0W2YrND4+Ml09cjt0W2YrMTY+PjJdPTA7dFtmKzIwPj4yXT1zO2M9MT09KHN8MCk7aVtmKzI0Pj4wXT1jJjE7dFtmKzI4Pj4yXT0wO2lmKGN8Mj09KHN8MCkpaVs3OTVdPTE7cmV0dXJufWZ1bmN0aW9uIEEoZSxhKXtlPWV8MDthPWF8MDt2YXIgcj0wLGk9MCxmPTAsYz0wO3I9dFs3MF18MDtpPXNbcj4+MV18MDtjPShlfDApPT0oYXwwKTtmPWM/MDplO2M9Yz8wOmE7aWYoaTw8MTY+PjE2PT05Nyl7dFs3MF09cis0O3I9dygxKXwwO2U9dFs3MF18MDtpZihXKHIpfDApe2Qocik7YT0odFs3MF18MCkrMnwwO3RbNzBdPWE7fWVsc2Uge3Eocil8MDthPXRbNzBdfDA7fWk9dygxKXwwO3I9dFs3MF18MDt9aWYoKHJ8MCkhPShlfDApKU8oZSxhLGYsYyk7cmV0dXJuIGl8MH1mdW5jdGlvbiBDKCl7dmFyIGU9MCxhPTAscj0wO3I9dFs3MV18MDthPXRbNzBdfDA7ZTp3aGlsZSgxKXtlPWErMnwwO2lmKGE+Pj4wPj1yPj4+MCl7YT02O2JyZWFrfXN3aXRjaChzW2U+PjFdfDApe2Nhc2UgMTM6Y2FzZSAxMDp7YT02O2JyZWFrIGV9Y2FzZSA5Mzp7YT03O2JyZWFrIGV9Y2FzZSA5Mjp7ZT1hKzR8MDticmVha31kZWZhdWx0Ont9fWE9ZTt9aWYoKGF8MCk9PTYpe3RbNzBdPWU7VCgpO2U9MDt9ZWxzZSBpZigoYXwwKT09Nyl7dFs3MF09ZTtlPTkzO31yZXR1cm4gZXwwfWZ1bmN0aW9uIGcoKXt2YXIgZT0wLGE9MCxyPTA7ZTp3aGlsZSgxKXtlPXRbNzBdfDA7YT1lKzJ8MDt0WzcwXT1hO2lmKGU+Pj4wPj0odFs3MV18MCk+Pj4wKXtyPTc7YnJlYWt9c3dpdGNoKHNbYT4+MV18MCl7Y2FzZSAxMzpjYXNlIDEwOntyPTc7YnJlYWsgZX1jYXNlIDQ3OmJyZWFrIGU7Y2FzZSA5MTp7QygpfDA7YnJlYWt9Y2FzZSA5Mjp7dFs3MF09ZSs0O2JyZWFrfWRlZmF1bHQ6e319fWlmKChyfDApPT03KVQoKTtyZXR1cm59ZnVuY3Rpb24gcChlKXtlPWV8MDtzd2l0Y2goc1tlPj4xXXwwKXtjYXNlIDYyOntlPShzW2UrLTI+PjFdfDApPT02MTticmVha31jYXNlIDQxOmNhc2UgNTk6e2U9MTticmVha31jYXNlIDEwNDp7ZT0kKGUrLTJ8MCwyMDAsNCl8MDticmVha31jYXNlIDEyMTp7ZT0kKGUrLTJ8MCwyMDgsNil8MDticmVha31jYXNlIDEwMTp7ZT0kKGUrLTJ8MCwyMjAsMyl8MDticmVha31kZWZhdWx0OmU9MDt9cmV0dXJuIGV8MH1mdW5jdGlvbiB5KGUpe2U9ZXwwO3ZhciBhPTAscj0wLGk9MCxmPTAsYz0wO2Y9KHRbNzBdfDApKzJ8MDt0WzcwXT1mO3I9dFs3MV18MDt3aGlsZSgxKXthPWYrMnwwO2lmKGY+Pj4wPj1yPj4+MClicmVhaztpPXNbYT4+MV18MDtpZighZT9aKGkpfDA6MClicmVhaztpZihpPDwxNj4+MTY9PTQyPyhzW2YrND4+MV18MCk9PTQ3OjApe2M9ODticmVha31mPWE7fWlmKChjfDApPT04KXt0WzcwXT1hO2E9Zis0fDA7fXRbNzBdPWE7cmV0dXJufWZ1bmN0aW9uIG0oZSxhLHIpe2U9ZXwwO2E9YXwwO3I9cnwwO3ZhciBzPTAsdD0wO2U6ZG97aWYoIXIpZT0wO2Vsc2Uge3doaWxlKDEpe3M9aVtlPj4wXXwwO3Q9aVthPj4wXXwwO2lmKHM8PDI0Pj4yNCE9dDw8MjQ+PjI0KWJyZWFrO3I9cistMXwwO2lmKCFyKXtlPTA7YnJlYWsgZX1lbHNlIHtlPWUrMXwwO2E9YSsxfDA7fX1lPShzJjI1NSktKHQmMjU1KXwwO319d2hpbGUoMCk7cmV0dXJuIGV8MH1mdW5jdGlvbiBJKGUpe2U9ZXwwO2U6ZG97c3dpdGNoKGU8PDE2Pj4xNil7Y2FzZSAzODpjYXNlIDM3OmNhc2UgMzM6e2U9MTticmVha31kZWZhdWx0OmlmKChlJi04KTw8MTY+PjE2PT00MHwoZSstNTgmNjU1MzUpPDYpZT0xO2Vsc2Uge3N3aXRjaChlPDwxNj4+MTYpe2Nhc2UgOTE6Y2FzZSA5MzpjYXNlIDk0OntlPTE7YnJlYWsgZX1kZWZhdWx0Ont9fWU9KGUrLTEyMyY2NTUzNSk8NDt9fX13aGlsZSgwKTtyZXR1cm4gZXwwfWZ1bmN0aW9uIFUoZSl7ZT1lfDA7ZTpkb3tzd2l0Y2goZTw8MTY+PjE2KXtjYXNlIDM4OmNhc2UgMzc6Y2FzZSAzMzpicmVhaztkZWZhdWx0OmlmKCEoKGUrLTU4JjY1NTM1KTw2fChlKy00MCY2NTUzNSk8NyZlPDwxNj4+MTYhPTQxKSl7c3dpdGNoKGU8PDE2Pj4xNil7Y2FzZSA5MTpjYXNlIDk0OmJyZWFrIGU7ZGVmYXVsdDp7fX1yZXR1cm4gZTw8MTY+PjE2IT0xMjUmKGUrLTEyMyY2NTUzNSk8NHwwfX19d2hpbGUoMCk7cmV0dXJuIDF9ZnVuY3Rpb24geChlKXtlPWV8MDt2YXIgYT0wO2E9c1tlPj4xXXwwO2U6ZG97aWYoKGErLTkmNjU1MzUpPj01KXtzd2l0Y2goYTw8MTY+PjE2KXtjYXNlIDE2MDpjYXNlIDMyOnthPTE7YnJlYWsgZX1kZWZhdWx0Ont9fWlmKEkoYSl8MClyZXR1cm4gYTw8MTY+PjE2IT00NnwoRyhlKXwwKXwwO2Vsc2UgYT0wO31lbHNlIGE9MTt9d2hpbGUoMCk7cmV0dXJuIGF8MH1mdW5jdGlvbiBTKGUpe2U9ZXwwO3ZhciBhPTAscj0wLGk9MCxmPTA7cj1uO249bisxNnwwO2k9cjt0W2k+PjJdPTA7dFs2NF09ZTthPXRbM118MDtmPWErKGU8PDEpfDA7ZT1mKzJ8MDtzW2Y+PjFdPTA7dFtpPj4yXT1lO3RbNjVdPWU7dFs1N109MDt0WzYxXT0wO3RbNTldPTA7dFs1OF09MDt0WzYzXT0wO3RbNjBdPTA7bj1yO3JldHVybiBhfDB9ZnVuY3Rpb24gTyhlLGEscixzKXtlPWV8MDthPWF8MDtyPXJ8MDtzPXN8MDt2YXIgZj0wLGM9MDtmPXRbNjVdfDA7dFs2NV09ZisyMDtjPXRbNjNdfDA7dFsoKGN8MCk9PTA/MjMyOmMrMTZ8MCk+PjJdPWY7dFs2M109Zjt0W2Y+PjJdPWU7dFtmKzQ+PjJdPWE7dFtmKzg+PjJdPXI7dFtmKzEyPj4yXT1zO3RbZisxNj4+Ml09MDtpWzc5NV09MTtyZXR1cm59ZnVuY3Rpb24gJChlLGEscil7ZT1lfDA7YT1hfDA7cj1yfDA7dmFyIGk9MCxzPTA7aT1lKygwLXI8PDEpfDA7cz1pKzJ8MDtlPXRbM118MDtpZihzPj4+MD49ZT4+PjA/KG0ocyxhLHI8PDEpfDApPT0wOjApaWYoKHN8MCk9PShlfDApKWU9MTtlbHNlIGU9eChpKXwwO2Vsc2UgZT0wO3JldHVybiBlfDB9ZnVuY3Rpb24gaihlKXtlPWV8MDtzd2l0Y2goc1tlPj4xXXwwKXtjYXNlIDEwNzp7ZT0kKGUrLTJ8MCwxMzQsNCl8MDticmVha31jYXNlIDEwMTp7aWYoKHNbZSstMj4+MV18MCk9PTExNyllPSQoZSstNHwwLDEwNiw2KXwwO2Vsc2UgZT0wO2JyZWFrfWRlZmF1bHQ6ZT0wO31yZXR1cm4gZXwwfWZ1bmN0aW9uIEIoZSxhKXtlPWV8MDthPWF8MDt2YXIgcj0wO3I9dFszXXwwO2lmKHI+Pj4wPD1lPj4+MD8oc1tlPj4xXXwwKT09YTw8MTY+PjE2OjApaWYoKHJ8MCk9PShlfDApKXI9MTtlbHNlIHI9RShzW2UrLTI+PjFdfDApfDA7ZWxzZSByPTA7cmV0dXJuIHJ8MH1mdW5jdGlvbiBFKGUpe2U9ZXwwO2U6ZG97aWYoKGUrLTkmNjU1MzUpPDUpZT0xO2Vsc2Uge3N3aXRjaChlPDwxNj4+MTYpe2Nhc2UgMzI6Y2FzZSAxNjA6e2U9MTticmVhayBlfWRlZmF1bHQ6e319ZT1lPDwxNj4+MTYhPTQ2JihJKGUpfDApO319d2hpbGUoMCk7cmV0dXJuIGV8MH1mdW5jdGlvbiBQKCl7dmFyIGU9MCxhPTAscj0wO2U9dFs3MV18MDtyPXRbNzBdfDA7ZTp3aGlsZSgxKXthPXIrMnwwO2lmKHI+Pj4wPj1lPj4+MClicmVhaztzd2l0Y2goc1thPj4xXXwwKXtjYXNlIDEzOmNhc2UgMTA6YnJlYWsgZTtkZWZhdWx0OnI9YTt9fXRbNzBdPWE7cmV0dXJufWZ1bmN0aW9uIHEoZSl7ZT1lfDA7d2hpbGUoMSl7aWYoVihlKXwwKWJyZWFrO2lmKEkoZSl8MClicmVhaztlPSh0WzcwXXwwKSsyfDA7dFs3MF09ZTtlPXNbZT4+MV18MDtpZighKGU8PDE2Pj4xNikpe2U9MDticmVha319cmV0dXJuIGV8MH1mdW5jdGlvbiB6KCl7dmFyIGU9MDtlPXRbKHRbNTldfDApKzIwPj4yXXwwO3N3aXRjaChlfDApe2Nhc2UgMTp7ZT0tMTticmVha31jYXNlIDI6e2U9LTI7YnJlYWt9ZGVmYXVsdDplPWUtKHRbM118MCk+PjE7fXJldHVybiBlfDB9ZnVuY3Rpb24gRChlKXtlPWV8MDtpZighKCQoZSwxODAsNSl8MCk/ISgkKGUsMTkwLDMpfDApOjApZT0kKGUsMTk2LDIpfDA7ZWxzZSBlPTE7cmV0dXJuIGV8MH1mdW5jdGlvbiBGKGUpe2U9ZXwwO3N3aXRjaChlPDwxNj4+MTYpe2Nhc2UgMTYwOmNhc2UgMzI6Y2FzZSAxMjpjYXNlIDExOmNhc2UgOTp7ZT0xO2JyZWFrfWRlZmF1bHQ6ZT0wO31yZXR1cm4gZXwwfWZ1bmN0aW9uIEcoZSl7ZT1lfDA7aWYoKHNbZT4+MV18MCk9PTQ2PyhzW2UrLTI+PjFdfDApPT00NjowKWU9KHNbZSstND4+MV18MCk9PTQ2O2Vsc2UgZT0wO3JldHVybiBlfDB9ZnVuY3Rpb24gSChlKXtlPWV8MDtpZigodFszXXwwKT09KGV8MCkpZT0xO2Vsc2UgZT14KGUrLTJ8MCl8MDtyZXR1cm4gZXwwfWZ1bmN0aW9uIEooKXt2YXIgZT0wO2U9dFsodFs2MF18MCkrMTI+PjJdfDA7aWYoIWUpZT0tMTtlbHNlIGU9ZS0odFszXXwwKT4+MTtyZXR1cm4gZXwwfWZ1bmN0aW9uIEsoKXt2YXIgZT0wO2U9dFsodFs1OV18MCkrMTI+PjJdfDA7aWYoIWUpZT0tMTtlbHNlIGU9ZS0odFszXXwwKT4+MTtyZXR1cm4gZXwwfWZ1bmN0aW9uIEwoKXt2YXIgZT0wO2U9dFsodFs2MF18MCkrOD4+Ml18MDtpZighZSllPS0xO2Vsc2UgZT1lLSh0WzNdfDApPj4xO3JldHVybiBlfDB9ZnVuY3Rpb24gTSgpe3ZhciBlPTA7ZT10Wyh0WzU5XXwwKSsxNj4+Ml18MDtpZighZSllPS0xO2Vsc2UgZT1lLSh0WzNdfDApPj4xO3JldHVybiBlfDB9ZnVuY3Rpb24gTigpe3ZhciBlPTA7ZT10Wyh0WzU5XXwwKSs0Pj4yXXwwO2lmKCFlKWU9LTE7ZWxzZSBlPWUtKHRbM118MCk+PjE7cmV0dXJuIGV8MH1mdW5jdGlvbiBRKCl7dmFyIGU9MDtlPXRbNTldfDA7ZT10WygoZXwwKT09MD8yMjg6ZSsyOHwwKT4+Ml18MDt0WzU5XT1lO3JldHVybiAoZXwwKSE9MHwwfWZ1bmN0aW9uIFIoKXt2YXIgZT0wO2U9dFs2MF18MDtlPXRbKChlfDApPT0wPzIzMjplKzE2fDApPj4yXXwwO3RbNjBdPWU7cmV0dXJuIChlfDApIT0wfDB9ZnVuY3Rpb24gVCgpe2lbNzk0XT0xO3RbNjZdPSh0WzcwXXwwKS0odFszXXwwKT4+MTt0WzcwXT0odFs3MV18MCkrMjtyZXR1cm59ZnVuY3Rpb24gVihlKXtlPWV8MDtyZXR1cm4gKGV8MTI4KTw8MTY+PjE2PT0xNjB8KGUrLTkmNjU1MzUpPDV8MH1mdW5jdGlvbiBXKGUpe2U9ZXwwO3JldHVybiBlPDwxNj4+MTY9PTM5fGU8PDE2Pj4xNj09MzR8MH1mdW5jdGlvbiBYKCl7cmV0dXJuICh0Wyh0WzU5XXwwKSs4Pj4yXXwwKS0odFszXXwwKT4+MXwwfWZ1bmN0aW9uIFkoKXtyZXR1cm4gKHRbKHRbNjBdfDApKzQ+PjJdfDApLSh0WzNdfDApPj4xfDB9ZnVuY3Rpb24gWihlKXtlPWV8MDtyZXR1cm4gZTw8MTY+PjE2PT0xM3xlPDwxNj4+MTY9PTEwfDB9ZnVuY3Rpb24gXygpe3JldHVybiAodFt0WzU5XT4+Ml18MCktKHRbM118MCk+PjF8MH1mdW5jdGlvbiBlZSgpe3JldHVybiAodFt0WzYwXT4+Ml18MCktKHRbM118MCk+PjF8MH1mdW5jdGlvbiBhZSgpe3JldHVybiBmWyh0WzU5XXwwKSsyND4+MF18MHwwfWZ1bmN0aW9uIHJlKGUpe2U9ZXwwO3RbM109ZTtyZXR1cm59ZnVuY3Rpb24gaWUoKXtyZXR1cm4gKGlbNzk1XXwwKSE9MHwwfWZ1bmN0aW9uIHNlKCl7cmV0dXJuIChpWzc5Nl18MCkhPTB8MH1mdW5jdGlvbiB0ZSgpe3JldHVybiB0WzY2XXwwfWZ1bmN0aW9uIGZlKGUpe2U9ZXwwO249ZSs5OTIrMTUmLTE2O3JldHVybiA5OTJ9cmV0dXJuIHtzdTpmZSxhaTpNLGU6dGUsZWU6WSxlbGU6SixlbHM6TCxlczplZSxmOnNlLGlkOnosaWU6TixpcDphZSxpczpfLG1zOmllLHA6YixyZTpSLHJpOlEsc2E6UyxzZTpLLHNlczpyZSxzczpYfX0oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjpnbG9iYWwse30sYSkscj1lLnN1KGktKDI8PDE3KSk7fWNvbnN0IGg9Zi5sZW5ndGgrMTtlLnNlcyhyKSxlLnNhKGgtMSkscyhmLG5ldyBVaW50MTZBcnJheShhLHIsaCkpLGUucCgpfHwobj1lLmUoKSxvKCkpO2NvbnN0IHc9W10sZD1bXTtmb3IoO2UucmkoKTspe2NvbnN0IGE9ZS5pcygpLHI9ZS5pZSgpLGk9ZS5haSgpLHM9ZS5pZCgpLHQ9ZS5zcygpLGM9ZS5zZSgpO2xldCBuO2UuaXAoKSYmKG49YigtMT09PXM/YTphKzEsZi5jaGFyQ29kZUF0KC0xPT09cz9hLTE6YSkpKSx3LnB1c2goe246bixzOmEsZTpyLHNzOnQsc2U6YyxkOnMsYTppfSk7fWZvcig7ZS5yZSgpOyl7Y29uc3QgYT1lLmVzKCkscj1lLmVlKCksaT1lLmVscygpLHM9ZS5lbGUoKSx0PWYuY2hhckNvZGVBdChhKSxjPWk+PTA/Zi5jaGFyQ29kZUF0KGkpOi0xO2QucHVzaCh7czphLGU6cixsczppLGxlOnMsbjozND09PXR8fDM5PT09dD9iKGErMSx0KTpmLnNsaWNlKGEsciksbG46aTwwP3ZvaWQgMDozND09PWN8fDM5PT09Yz9iKGkrMSxjKTpmLnNsaWNlKGkscyl9KTt9cmV0dXJuIFt3LGQsISFlLmYoKSwhIWUubXMoKV19ZnVuY3Rpb24gYihlLGEpe249ZTtsZXQgcj1cIlwiLGk9bjtmb3IoOzspe24+PWYubGVuZ3RoJiZvKCk7Y29uc3QgZT1mLmNoYXJDb2RlQXQobik7aWYoZT09PWEpYnJlYWs7OTI9PT1lPyhyKz1mLnNsaWNlKGksbikscis9bCgpLGk9bik6KDgyMzI9PT1lfHw4MjMzPT09ZXx8dShlKSYmbygpLCsrbik7fXJldHVybiByKz1mLnNsaWNlKGksbisrKSxyfWZ1bmN0aW9uIGwoKXtsZXQgZT1mLmNoYXJDb2RlQXQoKytuKTtzd2l0Y2goKytuLGUpe2Nhc2UgMTEwOnJldHVybiBcIlxcblwiO2Nhc2UgMTE0OnJldHVybiBcIlxcclwiO2Nhc2UgMTIwOnJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGsoMikpO2Nhc2UgMTE3OnJldHVybiBmdW5jdGlvbigpe2NvbnN0IGU9Zi5jaGFyQ29kZUF0KG4pO2xldCBhOzEyMz09PWU/KCsrbixhPWsoZi5pbmRleE9mKFwifVwiLG4pLW4pLCsrbixhPjExMTQxMTEmJm8oKSk6YT1rKDQpO3JldHVybiBhPD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKGEpOihhLT02NTUzNixTdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhhPj4xMCksNTYzMjArKDEwMjMmYSkpKX0oKTtjYXNlIDExNjpyZXR1cm4gXCJcXHRcIjtjYXNlIDk4OnJldHVybiBcIlxcYlwiO2Nhc2UgMTE4OnJldHVybiBcIlxcdlwiO2Nhc2UgMTAyOnJldHVybiBcIlxcZlwiO2Nhc2UgMTM6MTA9PT1mLmNoYXJDb2RlQXQobikmJisrbjtjYXNlIDEwOnJldHVybiBcIlwiO2Nhc2UgNTY6Y2FzZSA1NzpvKCk7ZGVmYXVsdDppZihlPj00OCYmZTw9NTUpe2xldCBhPWYuc3Vic3RyKG4tMSwzKS5tYXRjaCgvXlswLTddKy8pWzBdLHI9cGFyc2VJbnQoYSw4KTtyZXR1cm4gcj4yNTUmJihhPWEuc2xpY2UoMCwtMSkscj1wYXJzZUludChhLDgpKSxuKz1hLmxlbmd0aC0xLGU9Zi5jaGFyQ29kZUF0KG4pLFwiMFwiPT09YSYmNTYhPT1lJiY1NyE9PWV8fG8oKSxTdHJpbmcuZnJvbUNoYXJDb2RlKHIpfXJldHVybiB1KGUpP1wiXCI6U3RyaW5nLmZyb21DaGFyQ29kZShlKX19ZnVuY3Rpb24gayhlKXtjb25zdCBhPW47bGV0IHI9MCxpPTA7Zm9yKGxldCBhPTA7YTxlOysrYSwrK24pe2xldCBlLHM9Zi5jaGFyQ29kZUF0KG4pO2lmKDk1IT09cyl7aWYocz49OTcpZT1zLTk3KzEwO2Vsc2UgaWYocz49NjUpZT1zLTY1KzEwO2Vsc2Uge2lmKCEocz49NDgmJnM8PTU3KSlicmVhaztlPXMtNDg7fWlmKGU+PTE2KWJyZWFrO2k9cyxyPTE2KnIrZTt9ZWxzZSA5NSE9PWkmJjAhPT1hfHxvKCksaT1zO31yZXR1cm4gOTUhPT1pJiZuLWE9PT1lfHxvKCkscn1mdW5jdGlvbiB1KGUpe3JldHVybiAxMz09PWV8fDEwPT09ZX1mdW5jdGlvbiBvKCl7dGhyb3cgT2JqZWN0LmFzc2lnbihFcnJvcihgUGFyc2UgZXJyb3IgJHtjJDF9OiR7Zi5zbGljZSgwLG4pLnNwbGl0KFwiXFxuXCIpLmxlbmd0aH06JHtuLWYubGFzdEluZGV4T2YoXCJcXG5cIixuLTEpfWApLHtpZHg6bn0pfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIF9yZXNvbHZlIChpZCwgcGFyZW50VXJsKSB7XHJcbiAgICBjb25zdCB1cmxSZXNvbHZlZCA9IHJlc29sdmVJZk5vdFBsYWluT3JVcmwoaWQsIHBhcmVudFVybCkgfHwgYXNVUkwoaWQpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcjogcmVzb2x2ZUltcG9ydE1hcChpbXBvcnRNYXAsIHVybFJlc29sdmVkIHx8IGlkLCBwYXJlbnRVcmwpIHx8IHRocm93VW5yZXNvbHZlZChpZCwgcGFyZW50VXJsKSxcclxuICAgICAgLy8gYiA9IGJhcmUgc3BlY2lmaWVyXHJcbiAgICAgIGI6ICF1cmxSZXNvbHZlZCAmJiAhYXNVUkwoaWQpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVzb2x2ZSA9IHJlc29sdmVIb29rID8gYXN5bmMgKGlkLCBwYXJlbnRVcmwpID0+IHtcclxuICAgIGxldCByZXN1bHQgPSByZXNvbHZlSG9vayhpZCwgcGFyZW50VXJsLCBkZWZhdWx0UmVzb2x2ZSk7XHJcbiAgICAvLyB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gbmV4dCBtYWpvclxyXG4gICAgaWYgKHJlc3VsdCAmJiByZXN1bHQudGhlbilcclxuICAgICAgcmVzdWx0ID0gYXdhaXQgcmVzdWx0O1xyXG4gICAgcmV0dXJuIHJlc3VsdCA/IHsgcjogcmVzdWx0LCBiOiAhcmVzb2x2ZUlmTm90UGxhaW5PclVybChpZCwgcGFyZW50VXJsKSAmJiAhYXNVUkwoaWQpIH0gOiBfcmVzb2x2ZShpZCwgcGFyZW50VXJsKTtcclxuICB9IDogX3Jlc29sdmU7XHJcblxyXG4gIC8vIGltcG9ydFNoaW0oJ21vZCcpO1xyXG4gIC8vIGltcG9ydFNoaW0oJ21vZCcsIHsgb3B0cyB9KTtcclxuICAvLyBpbXBvcnRTaGltKCdtb2QnLCB7IG9wdHMgfSwgcGFyZW50VXJsKTtcclxuICAvLyBpbXBvcnRTaGltKCdtb2QnLCBwYXJlbnRVcmwpO1xyXG4gIGFzeW5jIGZ1bmN0aW9uIGltcG9ydFNoaW0gKGlkLCAuLi5hcmdzKSB7XHJcbiAgICAvLyBwYXJlbnRVcmwgaWYgcHJlc2VudCB3aWxsIGJlIHRoZSBsYXN0IGFyZ3VtZW50XHJcbiAgICBsZXQgcGFyZW50VXJsID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKHR5cGVvZiBwYXJlbnRVcmwgIT09ICdzdHJpbmcnKVxyXG4gICAgICBwYXJlbnRVcmwgPSBiYXNlVXJsO1xyXG4gICAgLy8gbmVlZGVkIGZvciBzaGltIGNoZWNrXHJcbiAgICBhd2FpdCBpbml0UHJvbWlzZTtcclxuICAgIGlmIChpbXBvcnRIb29rKSBhd2FpdCBpbXBvcnRIb29rKGlkLCB0eXBlb2YgYXJnc1sxXSAhPT0gJ3N0cmluZycgPyBhcmdzWzFdIDoge30sIHBhcmVudFVybCk7XHJcbiAgICBpZiAoYWNjZXB0aW5nSW1wb3J0TWFwcyB8fCBzaGltTW9kZSB8fCAhYmFzZWxpbmVQYXNzdGhyb3VnaCkge1xyXG4gICAgICBpZiAoaGFzRG9jdW1lbnQpXHJcbiAgICAgICAgcHJvY2Vzc1NjcmlwdHNBbmRQcmVsb2Fkcyh0cnVlKTtcclxuICAgICAgaWYgKCFzaGltTW9kZSlcclxuICAgICAgICBhY2NlcHRpbmdJbXBvcnRNYXBzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBhd2FpdCBpbXBvcnRNYXBQcm9taXNlO1xyXG4gICAgcmV0dXJuIHRvcExldmVsTG9hZCgoYXdhaXQgcmVzb2x2ZShpZCwgcGFyZW50VXJsKSkuciwgeyBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyB9KTtcclxuICB9XHJcblxyXG4gIHNlbGYuaW1wb3J0U2hpbSA9IGltcG9ydFNoaW07XHJcblxyXG4gIGZ1bmN0aW9uIGRlZmF1bHRSZXNvbHZlIChpZCwgcGFyZW50VXJsKSB7XHJcbiAgICByZXR1cm4gcmVzb2x2ZUltcG9ydE1hcChpbXBvcnRNYXAsIHJlc29sdmVJZk5vdFBsYWluT3JVcmwoaWQsIHBhcmVudFVybCkgfHwgaWQsIHBhcmVudFVybCkgfHwgdGhyb3dVbnJlc29sdmVkKGlkLCBwYXJlbnRVcmwpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdGhyb3dVbnJlc29sdmVkIChpZCwgcGFyZW50VXJsKSB7XHJcbiAgICB0aHJvdyBFcnJvcihgVW5hYmxlIHRvIHJlc29sdmUgc3BlY2lmaWVyICcke2lkfScke2Zyb21QYXJlbnQocGFyZW50VXJsKX1gKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHJlc29sdmVTeW5jID0gKGlkLCBwYXJlbnRVcmwgPSBiYXNlVXJsKSA9PiB7XHJcbiAgICBwYXJlbnRVcmwgPSBgJHtwYXJlbnRVcmx9YDtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVIb29rICYmIHJlc29sdmVIb29rKGlkLCBwYXJlbnRVcmwsIGRlZmF1bHRSZXNvbHZlKTtcclxuICAgIHJldHVybiByZXN1bHQgJiYgIXJlc3VsdC50aGVuID8gcmVzdWx0IDogZGVmYXVsdFJlc29sdmUoaWQsIHBhcmVudFVybCk7XHJcbiAgfTtcclxuXHJcbiAgZnVuY3Rpb24gbWV0YVJlc29sdmUgKGlkLCBwYXJlbnRVcmwgPSB0aGlzLnVybCkge1xyXG4gICAgcmV0dXJuIHJlc29sdmVTeW5jKGlkLCBwYXJlbnRVcmwpO1xyXG4gIH1cclxuXHJcbiAgaW1wb3J0U2hpbS5yZXNvbHZlID0gcmVzb2x2ZVN5bmM7XHJcbiAgaW1wb3J0U2hpbS5nZXRJbXBvcnRNYXAgPSAoKSA9PiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGltcG9ydE1hcCkpO1xyXG4gIGltcG9ydFNoaW0uYWRkSW1wb3J0TWFwID0gaW1wb3J0TWFwSW4gPT4ge1xyXG4gICAgaWYgKCFzaGltTW9kZSkgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBpbiBwb2x5ZmlsbCBtb2RlLicpO1xyXG4gICAgaW1wb3J0TWFwID0gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAoaW1wb3J0TWFwSW4sIGJhc2VVcmwsIGltcG9ydE1hcCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgcmVnaXN0cnkgPSBpbXBvcnRTaGltLl9yID0ge307XHJcbiAgaW1wb3J0U2hpbS5fdyA9IHt9O1xyXG5cclxuICBhc3luYyBmdW5jdGlvbiBsb2FkQWxsIChsb2FkLCBzZWVuKSB7XHJcbiAgICBpZiAobG9hZC5iIHx8IHNlZW5bbG9hZC51XSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgc2Vlbltsb2FkLnVdID0gMTtcclxuICAgIGF3YWl0IGxvYWQuTDtcclxuICAgIGF3YWl0IFByb21pc2UuYWxsKGxvYWQuZC5tYXAoZGVwID0+IGxvYWRBbGwoZGVwLCBzZWVuKSkpO1xyXG4gICAgaWYgKCFsb2FkLm4pXHJcbiAgICAgIGxvYWQubiA9IGxvYWQuZC5zb21lKGRlcCA9PiBkZXAubik7XHJcbiAgfVxyXG5cclxuICBsZXQgaW1wb3J0TWFwID0geyBpbXBvcnRzOiB7fSwgc2NvcGVzOiB7fSB9O1xyXG4gIGxldCBiYXNlbGluZVBhc3N0aHJvdWdoO1xyXG5cclxuICBjb25zdCBpbml0UHJvbWlzZSA9IGZlYXR1cmVEZXRlY3Rpb25Qcm9taXNlLnRoZW4oKCkgPT4ge1xyXG4gICAgYmFzZWxpbmVQYXNzdGhyb3VnaCA9IGVzbXNJbml0T3B0aW9ucy5wb2x5ZmlsbEVuYWJsZSAhPT0gdHJ1ZSAmJiBzdXBwb3J0c0R5bmFtaWNJbXBvcnQgJiYgc3VwcG9ydHNJbXBvcnRNZXRhICYmIHN1cHBvcnRzSW1wb3J0TWFwcyAmJiAoIWpzb25Nb2R1bGVzRW5hYmxlZCB8fCBzdXBwb3J0c0pzb25Bc3NlcnRpb25zKSAmJiAoIWNzc01vZHVsZXNFbmFibGVkIHx8IHN1cHBvcnRzQ3NzQXNzZXJ0aW9ucykgJiYgKCF3YXNtTW9kdWxlc0VuYWJsZWQgfHwgc3VwcG9ydHNXYXNtTW9kdWxlcykgJiYgIWltcG9ydE1hcFNyY09yTGF6eTtcclxuICAgIGlmIChoYXNEb2N1bWVudCkge1xyXG4gICAgICBpZiAoIXN1cHBvcnRzSW1wb3J0TWFwcykge1xyXG4gICAgICAgIGNvbnN0IHN1cHBvcnRzID0gSFRNTFNjcmlwdEVsZW1lbnQuc3VwcG9ydHMgfHwgKHR5cGUgPT4gdHlwZSA9PT0gJ2NsYXNzaWMnIHx8IHR5cGUgPT09ICdtb2R1bGUnKTtcclxuICAgICAgICBIVE1MU2NyaXB0RWxlbWVudC5zdXBwb3J0cyA9IHR5cGUgPT4gdHlwZSA9PT0gJ2ltcG9ydG1hcCcgfHwgc3VwcG9ydHModHlwZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNoaW1Nb2RlIHx8ICFiYXNlbGluZVBhc3N0aHJvdWdoKSB7XHJcbiAgICAgICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcclxuICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlICE9PSAnY2hpbGRMaXN0JykgY29udGludWU7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBtdXRhdGlvbi5hZGRlZE5vZGVzKSB7XHJcbiAgICAgICAgICAgICAgaWYgKG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlLnR5cGUgPT09IChzaGltTW9kZSA/ICdtb2R1bGUtc2hpbScgOiAnbW9kdWxlJykpXHJcbiAgICAgICAgICAgICAgICAgIHByb2Nlc3NTY3JpcHQobm9kZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZS50eXBlID09PSAoc2hpbU1vZGUgPyAnaW1wb3J0bWFwLXNoaW0nIDogJ2ltcG9ydG1hcCcpKVxyXG4gICAgICAgICAgICAgICAgICBwcm9jZXNzSW1wb3J0TWFwKG5vZGUsIHRydWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIGlmIChub2RlLnRhZ05hbWUgPT09ICdMSU5LJyAmJiBub2RlLnJlbCA9PT0gKHNoaW1Nb2RlID8gJ21vZHVsZXByZWxvYWQtc2hpbScgOiAnbW9kdWxlcHJlbG9hZCcpKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzUHJlbG9hZChub2RlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KS5vYnNlcnZlKGRvY3VtZW50LCB7Y2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7XHJcbiAgICAgICAgcHJvY2Vzc1NjcmlwdHNBbmRQcmVsb2FkcygpO1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XHJcbiAgICAgICAgICByZWFkeVN0YXRlQ29tcGxldGVDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJlYWR5TGlzdGVuZXIoKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGluaXRQcm9taXNlO1xyXG4gICAgICAgICAgICBwcm9jZXNzU2NyaXB0c0FuZFByZWxvYWRzKCk7XHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XHJcbiAgICAgICAgICAgICAgcmVhZHlTdGF0ZUNvbXBsZXRlQ2hlY2soKTtcclxuICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgcmVhZHlMaXN0ZW5lcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlYWR5c3RhdGVjaGFuZ2UnLCByZWFkeUxpc3RlbmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfSk7XHJcbiAgbGV0IGltcG9ydE1hcFByb21pc2UgPSBpbml0UHJvbWlzZTtcclxuICBsZXQgZmlyc3RQb2x5ZmlsbExvYWQgPSB0cnVlO1xyXG4gIGxldCBhY2NlcHRpbmdJbXBvcnRNYXBzID0gdHJ1ZTtcclxuXHJcbiAgYXN5bmMgZnVuY3Rpb24gdG9wTGV2ZWxMb2FkICh1cmwsIGZldGNoT3B0cywgc291cmNlLCBuYXRpdmVseUxvYWRlZCwgbGFzdFN0YXRpY0xvYWRQcm9taXNlKSB7XHJcbiAgICBpZiAoIXNoaW1Nb2RlKVxyXG4gICAgICBhY2NlcHRpbmdJbXBvcnRNYXBzID0gZmFsc2U7XHJcbiAgICBhd2FpdCBpbml0UHJvbWlzZTtcclxuICAgIGF3YWl0IGltcG9ydE1hcFByb21pc2U7XHJcbiAgICBpZiAoaW1wb3J0SG9vaykgYXdhaXQgaW1wb3J0SG9vayh1cmwsIHR5cGVvZiBmZXRjaE9wdHMgIT09ICdzdHJpbmcnID8gZmV0Y2hPcHRzIDoge30sICcnKTtcclxuICAgIC8vIGVhcmx5IGFuYWx5c2lzIG9wdC1vdXQgLSBubyBuZWVkIHRvIGV2ZW4gZmV0Y2ggaWYgd2UgaGF2ZSBmZWF0dXJlIHN1cHBvcnRcclxuICAgIGlmICghc2hpbU1vZGUgJiYgYmFzZWxpbmVQYXNzdGhyb3VnaCkge1xyXG4gICAgICAvLyBmb3IgcG9seWZpbGwgY2FzZSwgb25seSBkeW5hbWljIGltcG9ydCBuZWVkcyBhIHJldHVybiB2YWx1ZSBoZXJlLCBhbmQgZHluYW1pYyBpbXBvcnQgd2lsbCBuZXZlciBwYXNzIG5hdGl2ZWx5TG9hZGVkXHJcbiAgICAgIGlmIChuYXRpdmVseUxvYWRlZClcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgYXdhaXQgbGFzdFN0YXRpY0xvYWRQcm9taXNlO1xyXG4gICAgICByZXR1cm4gZHluYW1pY0ltcG9ydChzb3VyY2UgPyBjcmVhdGVCbG9iKHNvdXJjZSkgOiB1cmwsIHsgZXJyVXJsOiB1cmwgfHwgc291cmNlIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbG9hZCA9IGdldE9yQ3JlYXRlTG9hZCh1cmwsIGZldGNoT3B0cywgbnVsbCwgc291cmNlKTtcclxuICAgIGNvbnN0IHNlZW4gPSB7fTtcclxuICAgIGF3YWl0IGxvYWRBbGwobG9hZCwgc2Vlbik7XHJcbiAgICBsYXN0TG9hZCA9IHVuZGVmaW5lZDtcclxuICAgIHJlc29sdmVEZXBzKGxvYWQsIHNlZW4pO1xyXG4gICAgYXdhaXQgbGFzdFN0YXRpY0xvYWRQcm9taXNlO1xyXG4gICAgaWYgKHNvdXJjZSAmJiAhc2hpbU1vZGUgJiYgIWxvYWQubikge1xyXG4gICAgICBpZiAobmF0aXZlbHlMb2FkZWQpIHJldHVybjtcclxuICAgICAgaWYgKHJldm9rZUJsb2JVUkxzKSByZXZva2VPYmplY3RVUkxzKE9iamVjdC5rZXlzKHNlZW4pKTtcclxuICAgICAgcmV0dXJuIGF3YWl0IGR5bmFtaWNJbXBvcnQoY3JlYXRlQmxvYihzb3VyY2UpLCB7IGVyclVybDogc291cmNlIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpcnN0UG9seWZpbGxMb2FkICYmICFzaGltTW9kZSAmJiBsb2FkLm4gJiYgbmF0aXZlbHlMb2FkZWQpIHtcclxuICAgICAgb25wb2x5ZmlsbCgpO1xyXG4gICAgICBmaXJzdFBvbHlmaWxsTG9hZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbW9kdWxlID0gYXdhaXQgZHluYW1pY0ltcG9ydCghc2hpbU1vZGUgJiYgIWxvYWQubiAmJiBuYXRpdmVseUxvYWRlZCA/IGxvYWQudSA6IGxvYWQuYiwgeyBlcnJVcmw6IGxvYWQudSB9KTtcclxuICAgIC8vIGlmIHRoZSB0b3AtbGV2ZWwgbG9hZCBpcyBhIHNoZWxsLCBydW4gaXRzIHVwZGF0ZSBmdW5jdGlvblxyXG4gICAgaWYgKGxvYWQucylcclxuICAgICAgKGF3YWl0IGR5bmFtaWNJbXBvcnQobG9hZC5zKSkudSRfKG1vZHVsZSk7XHJcbiAgICBpZiAocmV2b2tlQmxvYlVSTHMpIHJldm9rZU9iamVjdFVSTHMoT2JqZWN0LmtleXMoc2VlbikpO1xyXG4gICAgLy8gd2hlbiB0bGEgaXMgc3VwcG9ydGVkLCB0aGlzIHNob3VsZCByZXR1cm4gdGhlIHRsYSBwcm9taXNlIGFzIGFuIGFjdHVhbCBoYW5kbGVcclxuICAgIC8vIHNvIHJlYWR5c3RhdGUgY2FuIHN0aWxsIGNvcnJlc3BvbmQgdG8gdGhlIHN5bmMgc3ViZ3JhcGggZXhlYyBjb21wbGV0aW9uc1xyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHJldm9rZU9iamVjdFVSTHMocmVnaXN0cnlLZXlzKSB7XHJcbiAgICBsZXQgYmF0Y2ggPSAwO1xyXG4gICAgY29uc3Qga2V5c0xlbmd0aCA9IHJlZ2lzdHJ5S2V5cy5sZW5ndGg7XHJcbiAgICBjb25zdCBzY2hlZHVsZSA9IHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayA/IHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayA6IHNlbGYucmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xyXG4gICAgc2NoZWR1bGUoY2xlYW51cCk7XHJcbiAgICBmdW5jdGlvbiBjbGVhbnVwKCkge1xyXG4gICAgICBjb25zdCBiYXRjaFN0YXJ0SW5kZXggPSBiYXRjaCAqIDEwMDtcclxuICAgICAgaWYgKGJhdGNoU3RhcnRJbmRleCA+IGtleXNMZW5ndGgpIHJldHVyblxyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiByZWdpc3RyeUtleXMuc2xpY2UoYmF0Y2hTdGFydEluZGV4LCBiYXRjaFN0YXJ0SW5kZXggKyAxMDApKSB7XHJcbiAgICAgICAgY29uc3QgbG9hZCA9IHJlZ2lzdHJ5W2tleV07XHJcbiAgICAgICAgaWYgKGxvYWQpIFVSTC5yZXZva2VPYmplY3RVUkwobG9hZC5iKTtcclxuICAgICAgfVxyXG4gICAgICBiYXRjaCsrO1xyXG4gICAgICBzY2hlZHVsZShjbGVhbnVwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVybEpzU3RyaW5nICh1cmwpIHtcclxuICAgIHJldHVybiBgJyR7dXJsLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKX0nYDtcclxuICB9XHJcblxyXG4gIGxldCBsYXN0TG9hZDtcclxuICBmdW5jdGlvbiByZXNvbHZlRGVwcyAobG9hZCwgc2Vlbikge1xyXG4gICAgaWYgKGxvYWQuYiB8fCAhc2Vlbltsb2FkLnVdKVxyXG4gICAgICByZXR1cm47XHJcbiAgICBzZWVuW2xvYWQudV0gPSAwO1xyXG5cclxuICAgIGZvciAoY29uc3QgZGVwIG9mIGxvYWQuZClcclxuICAgICAgcmVzb2x2ZURlcHMoZGVwLCBzZWVuKTtcclxuXHJcbiAgICBjb25zdCBbaW1wb3J0cywgZXhwb3J0c10gPSBsb2FkLmE7XHJcblxyXG4gICAgLy8gXCJleGVjdXRpb25cIlxyXG4gICAgY29uc3Qgc291cmNlID0gbG9hZC5TO1xyXG5cclxuICAgIC8vIGVkZ2UgZG9lc250IGV4ZWN1dGUgc2libGluZyBpbiBvcmRlciwgc28gd2UgZml4IHRoaXMgdXAgYnkgZW5zdXJpbmcgYWxsIHByZXZpb3VzIGV4ZWN1dGlvbnMgYXJlIGV4cGxpY2l0IGRlcGVuZGVuY2llc1xyXG4gICAgbGV0IHJlc29sdmVkU291cmNlID0gZWRnZSAmJiBsYXN0TG9hZCA/IGBpbXBvcnQgJyR7bGFzdExvYWR9JztgIDogJyc7XHJcblxyXG4gICAgLy8gb25jZSBhbGwgZGVwcyBoYXZlIGxvYWRlZCB3ZSBjYW4gaW5saW5lIHRoZSBkZXBlbmRlbmN5IHJlc29sdXRpb24gYmxvYnNcclxuICAgIC8vIGFuZCBkZWZpbmUgdGhpcyBibG9iXHJcbiAgICBsZXQgbGFzdEluZGV4ID0gMCwgZGVwSW5kZXggPSAwLCBkeW5hbWljSW1wb3J0RW5kU3RhY2sgPSBbXTtcclxuICAgIGZ1bmN0aW9uIHB1c2hTdHJpbmdUbyAob3JpZ2luYWxJbmRleCkge1xyXG4gICAgICB3aGlsZSAoZHluYW1pY0ltcG9ydEVuZFN0YWNrW2R5bmFtaWNJbXBvcnRFbmRTdGFjay5sZW5ndGggLSAxXSA8IG9yaWdpbmFsSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBkeW5hbWljSW1wb3J0RW5kID0gZHluYW1pY0ltcG9ydEVuZFN0YWNrLnBvcCgpO1xyXG4gICAgICAgIHJlc29sdmVkU291cmNlICs9IGAke3NvdXJjZS5zbGljZShsYXN0SW5kZXgsIGR5bmFtaWNJbXBvcnRFbmQpfSwgJHt1cmxKc1N0cmluZyhsb2FkLnIpfWA7XHJcbiAgICAgICAgbGFzdEluZGV4ID0gZHluYW1pY0ltcG9ydEVuZDtcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlZFNvdXJjZSArPSBzb3VyY2Uuc2xpY2UobGFzdEluZGV4LCBvcmlnaW5hbEluZGV4KTtcclxuICAgICAgbGFzdEluZGV4ID0gb3JpZ2luYWxJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IHsgczogc3RhcnQsIHNzOiBzdGF0ZW1lbnRTdGFydCwgc2U6IHN0YXRlbWVudEVuZCwgZDogZHluYW1pY0ltcG9ydEluZGV4IH0gb2YgaW1wb3J0cykge1xyXG4gICAgICAvLyBkZXBlbmRlbmN5IHNvdXJjZSByZXBsYWNlbWVudHNcclxuICAgICAgaWYgKGR5bmFtaWNJbXBvcnRJbmRleCA9PT0gLTEpIHtcclxuICAgICAgICBsZXQgZGVwTG9hZCA9IGxvYWQuZFtkZXBJbmRleCsrXSwgYmxvYlVybCA9IGRlcExvYWQuYiwgY3ljbGVTaGVsbCA9ICFibG9iVXJsO1xyXG4gICAgICAgIGlmIChjeWNsZVNoZWxsKSB7XHJcbiAgICAgICAgICAvLyBjaXJjdWxhciBzaGVsbCBjcmVhdGlvblxyXG4gICAgICAgICAgaWYgKCEoYmxvYlVybCA9IGRlcExvYWQucykpIHtcclxuICAgICAgICAgICAgYmxvYlVybCA9IGRlcExvYWQucyA9IGNyZWF0ZUJsb2IoYGV4cG9ydCBmdW5jdGlvbiB1JF8obSl7JHtcclxuICAgICAgICAgICAgZGVwTG9hZC5hWzFdLm1hcCgoeyBzLCBlIH0sIGkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBxID0gZGVwTG9hZC5TW3NdID09PSAnXCInIHx8IGRlcExvYWQuU1tzXSA9PT0gXCInXCI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGBlJF8ke2l9PW0ke3EgPyBgW2AgOiAnLid9JHtkZXBMb2FkLlMuc2xpY2UocywgZSl9JHtxID8gYF1gIDogJyd9YDtcclxuICAgICAgICAgICAgfSkuam9pbignLCcpXHJcbiAgICAgICAgICB9fSR7XHJcbiAgICAgICAgICAgIGRlcExvYWQuYVsxXS5sZW5ndGggPyBgbGV0ICR7ZGVwTG9hZC5hWzFdLm1hcCgoXywgaSkgPT4gYGUkXyR7aX1gKS5qb2luKCcsJyl9O2AgOiAnJ1xyXG4gICAgICAgICAgfWV4cG9ydCB7JHtcclxuICAgICAgICAgICAgZGVwTG9hZC5hWzFdLm1hcCgoeyBzLCBlIH0sIGkpID0+IGBlJF8ke2l9IGFzICR7ZGVwTG9hZC5TLnNsaWNlKHMsIGUpfWApLmpvaW4oJywnKVxyXG4gICAgICAgICAgfX1cXG4vLyMgc291cmNlVVJMPSR7ZGVwTG9hZC5yfT9jeWNsZWApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVzaFN0cmluZ1RvKHN0YXJ0IC0gMSk7XHJcbiAgICAgICAgcmVzb2x2ZWRTb3VyY2UgKz0gYC8qJHtzb3VyY2Uuc2xpY2Uoc3RhcnQgLSAxLCBzdGF0ZW1lbnRFbmQpfSovJHt1cmxKc1N0cmluZyhibG9iVXJsKX1gO1xyXG5cclxuICAgICAgICAvLyBjaXJjdWxhciBzaGVsbCBleGVjdXRpb25cclxuICAgICAgICBpZiAoIWN5Y2xlU2hlbGwgJiYgZGVwTG9hZC5zKSB7XHJcbiAgICAgICAgICByZXNvbHZlZFNvdXJjZSArPSBgO2ltcG9ydCphcyBtJF8ke2RlcEluZGV4fSBmcm9tJyR7ZGVwTG9hZC5ifSc7aW1wb3J0e3UkXyBhcyB1JF8ke2RlcEluZGV4fX1mcm9tJyR7ZGVwTG9hZC5zfSc7dSRfJHtkZXBJbmRleH0obSRfJHtkZXBJbmRleH0pYDtcclxuICAgICAgICAgIGRlcExvYWQucyA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFzdEluZGV4ID0gc3RhdGVtZW50RW5kO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGltcG9ydC5tZXRhXHJcbiAgICAgIGVsc2UgaWYgKGR5bmFtaWNJbXBvcnRJbmRleCA9PT0gLTIpIHtcclxuICAgICAgICBsb2FkLm0gPSB7IHVybDogbG9hZC5yLCByZXNvbHZlOiBtZXRhUmVzb2x2ZSB9O1xyXG4gICAgICAgIG1ldGFIb29rKGxvYWQubSwgbG9hZC51KTtcclxuICAgICAgICBwdXNoU3RyaW5nVG8oc3RhcnQpO1xyXG4gICAgICAgIHJlc29sdmVkU291cmNlICs9IGBpbXBvcnRTaGltLl9yWyR7dXJsSnNTdHJpbmcobG9hZC51KX1dLm1gO1xyXG4gICAgICAgIGxhc3RJbmRleCA9IHN0YXRlbWVudEVuZDtcclxuICAgICAgfVxyXG4gICAgICAvLyBkeW5hbWljIGltcG9ydFxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBwdXNoU3RyaW5nVG8oc3RhdGVtZW50U3RhcnQgKyA2KTtcclxuICAgICAgICByZXNvbHZlZFNvdXJjZSArPSBgU2hpbShgO1xyXG4gICAgICAgIGR5bmFtaWNJbXBvcnRFbmRTdGFjay5wdXNoKHN0YXRlbWVudEVuZCAtIDEpO1xyXG4gICAgICAgIGxhc3RJbmRleCA9IHN0YXJ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3VwcG9ydCBwcm9ncmVzc2l2ZSBjeWNsZSBiaW5kaW5nIHVwZGF0ZXMgKHRyeSBzdGF0ZW1lbnQgYXZvaWRzIHRkeiBlcnJvcnMpXHJcbiAgICBpZiAobG9hZC5zKVxyXG4gICAgICByZXNvbHZlZFNvdXJjZSArPSBgXFxuO2ltcG9ydHt1JF99ZnJvbScke2xvYWQuc30nO3RyeXt1JF8oeyR7ZXhwb3J0cy5maWx0ZXIoZSA9PiBlLmxuKS5tYXAoKHsgcywgZSwgbG4gfSkgPT4gYCR7c291cmNlLnNsaWNlKHMsIGUpfToke2xufWApLmpvaW4oJywnKX19KX1jYXRjaChfKXt9O1xcbmA7XHJcblxyXG4gICAgZnVuY3Rpb24gcHVzaFNvdXJjZVVSTCAoY29tbWVudFByZWZpeCwgY29tbWVudFN0YXJ0KSB7XHJcbiAgICAgIGNvbnN0IHVybFN0YXJ0ID0gY29tbWVudFN0YXJ0ICsgY29tbWVudFByZWZpeC5sZW5ndGg7XHJcbiAgICAgIGNvbnN0IGNvbW1lbnRFbmQgPSBzb3VyY2UuaW5kZXhPZignXFxuJywgdXJsU3RhcnQpO1xyXG4gICAgICBjb25zdCB1cmxFbmQgPSBjb21tZW50RW5kICE9PSAtMSA/IGNvbW1lbnRFbmQgOiBzb3VyY2UubGVuZ3RoO1xyXG4gICAgICBwdXNoU3RyaW5nVG8odXJsU3RhcnQpO1xyXG4gICAgICByZXNvbHZlZFNvdXJjZSArPSBuZXcgVVJMKHNvdXJjZS5zbGljZSh1cmxTdGFydCwgdXJsRW5kKSwgbG9hZC5yKS5ocmVmO1xyXG4gICAgICBsYXN0SW5kZXggPSB1cmxFbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNvdXJjZVVSTENvbW1lbnRTdGFydCA9IHNvdXJjZS5sYXN0SW5kZXhPZihzb3VyY2VVUkxDb21tZW50UHJlZml4KTtcclxuICAgIGxldCBzb3VyY2VNYXBVUkxDb21tZW50U3RhcnQgPSBzb3VyY2UubGFzdEluZGV4T2Yoc291cmNlTWFwVVJMQ29tbWVudFByZWZpeCk7XHJcblxyXG4gICAgLy8gaWdub3JlIHNvdXJjZU1hcCBjb21tZW50cyBiZWZvcmUgYWxyZWFkeSBzcGxpY2VkIGNvZGVcclxuICAgIGlmIChzb3VyY2VVUkxDb21tZW50U3RhcnQgPCBsYXN0SW5kZXgpIHNvdXJjZVVSTENvbW1lbnRTdGFydCA9IC0xO1xyXG4gICAgaWYgKHNvdXJjZU1hcFVSTENvbW1lbnRTdGFydCA8IGxhc3RJbmRleCkgc291cmNlTWFwVVJMQ29tbWVudFN0YXJ0ID0gLTE7XHJcblxyXG4gICAgLy8gc291cmNlVVJMIGZpcnN0IC8gb25seVxyXG4gICAgaWYgKHNvdXJjZVVSTENvbW1lbnRTdGFydCAhPT0gLTEgJiYgKHNvdXJjZU1hcFVSTENvbW1lbnRTdGFydCA9PT0gLTEgfHwgc291cmNlTWFwVVJMQ29tbWVudFN0YXJ0ID4gc291cmNlVVJMQ29tbWVudFN0YXJ0KSkge1xyXG4gICAgICBwdXNoU291cmNlVVJMKHNvdXJjZVVSTENvbW1lbnRQcmVmaXgsIHNvdXJjZVVSTENvbW1lbnRTdGFydCk7XHJcbiAgICB9XHJcbiAgICAvLyBzb3VyY2VNYXBwaW5nVVJMXHJcbiAgICBpZiAoc291cmNlTWFwVVJMQ29tbWVudFN0YXJ0ICE9PSAtMSkge1xyXG4gICAgICBwdXNoU291cmNlVVJMKHNvdXJjZU1hcFVSTENvbW1lbnRQcmVmaXgsIHNvdXJjZU1hcFVSTENvbW1lbnRTdGFydCk7XHJcbiAgICAgIC8vIHNvdXJjZVVSTCBsYXN0XHJcbiAgICAgIGlmIChzb3VyY2VVUkxDb21tZW50U3RhcnQgIT09IC0xICYmIChzb3VyY2VVUkxDb21tZW50U3RhcnQgPiBzb3VyY2VNYXBVUkxDb21tZW50U3RhcnQpKVxyXG4gICAgICAgIHB1c2hTb3VyY2VVUkwoc291cmNlVVJMQ29tbWVudFByZWZpeCwgc291cmNlVVJMQ29tbWVudFN0YXJ0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdXNoU3RyaW5nVG8oc291cmNlLmxlbmd0aCk7XHJcblxyXG4gICAgaWYgKHNvdXJjZVVSTENvbW1lbnRTdGFydCA9PT0gLTEpXHJcbiAgICAgIHJlc29sdmVkU291cmNlICs9IHNvdXJjZVVSTENvbW1lbnRQcmVmaXggKyBsb2FkLnI7XHJcblxyXG4gICAgbG9hZC5iID0gbGFzdExvYWQgPSBjcmVhdGVCbG9iKHJlc29sdmVkU291cmNlKTtcclxuICAgIGxvYWQuUyA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNvdXJjZVVSTENvbW1lbnRQcmVmaXggPSAnXFxuLy8jIHNvdXJjZVVSTD0nO1xyXG4gIGNvbnN0IHNvdXJjZU1hcFVSTENvbW1lbnRQcmVmaXggPSAnXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9JztcclxuXHJcbiAgY29uc3QganNDb250ZW50VHlwZSA9IC9eKHRleHR8YXBwbGljYXRpb24pXFwvKHgtKT9qYXZhc2NyaXB0KDt8JCkvO1xyXG4gIGNvbnN0IHdhc21Db250ZW50VHlwZSA9IC9eKGFwcGxpY2F0aW9uKVxcL3dhc20oO3wkKS87XHJcbiAgY29uc3QganNvbkNvbnRlbnRUeXBlID0gL14odGV4dHxhcHBsaWNhdGlvbilcXC9qc29uKDt8JCkvO1xyXG4gIGNvbnN0IGNzc0NvbnRlbnRUeXBlID0gL14odGV4dHxhcHBsaWNhdGlvbilcXC9jc3MoO3wkKS87XHJcblxyXG4gIGNvbnN0IGNzc1VybFJlZ0V4ID0gL3VybFxcKFxccyooPzooW1wiJ10pKCg/OlxcXFwufFteXFxuXFxcXFwiJ10pKylcXDF8KCg/OlxcXFwufFteXFxzLFwiJygpXFxcXF0pKykpXFxzKlxcKS9nO1xyXG5cclxuICAvLyByZXN0cmljdCBpbi1mbGlnaHQgZmV0Y2hlcyB0byBhIHBvb2wgb2YgMTAwXHJcbiAgbGV0IHAgPSBbXTtcclxuICBsZXQgYyA9IDA7XHJcbiAgZnVuY3Rpb24gcHVzaEZldGNoUG9vbCAoKSB7XHJcbiAgICBpZiAoKytjID4gMTAwKVxyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UociA9PiBwLnB1c2gocikpO1xyXG4gIH1cclxuICBmdW5jdGlvbiBwb3BGZXRjaFBvb2wgKCkge1xyXG4gICAgYy0tO1xyXG4gICAgaWYgKHAubGVuZ3RoKVxyXG4gICAgICBwLnNoaWZ0KCkoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGZ1bmN0aW9uIGRvRmV0Y2ggKHVybCwgZmV0Y2hPcHRzLCBwYXJlbnQpIHtcclxuICAgIGlmIChlbmZvcmNlSW50ZWdyaXR5ICYmICFmZXRjaE9wdHMuaW50ZWdyaXR5KVxyXG4gICAgICB0aHJvdyBFcnJvcihgTm8gaW50ZWdyaXR5IGZvciAke3VybH0ke2Zyb21QYXJlbnQocGFyZW50KX0uYCk7XHJcbiAgICBjb25zdCBwb29sUXVldWUgPSBwdXNoRmV0Y2hQb29sKCk7XHJcbiAgICBpZiAocG9vbFF1ZXVlKSBhd2FpdCBwb29sUXVldWU7XHJcbiAgICB0cnkge1xyXG4gICAgICB2YXIgcmVzID0gYXdhaXQgZmV0Y2hIb29rKHVybCwgZmV0Y2hPcHRzKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgIGUubWVzc2FnZSA9IGBVbmFibGUgdG8gZmV0Y2ggJHt1cmx9JHtmcm9tUGFyZW50KHBhcmVudCl9IC0gc2VlIG5ldHdvcmsgbG9nIGZvciBkZXRhaWxzLlxcbmAgKyBlLm1lc3NhZ2U7XHJcbiAgICAgIHRocm93IGU7XHJcbiAgICB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgcG9wRmV0Y2hQb29sKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFyZXMub2spIHtcclxuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKGAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9ICR7cmVzLnVybH0ke2Zyb21QYXJlbnQocGFyZW50KX1gKTtcclxuICAgICAgZXJyb3IucmVzcG9uc2UgPSByZXM7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9XHJcblxyXG4gIGFzeW5jIGZ1bmN0aW9uIGZldGNoTW9kdWxlICh1cmwsIGZldGNoT3B0cywgcGFyZW50KSB7XHJcbiAgICBjb25zdCByZXMgPSBhd2FpdCBkb0ZldGNoKHVybCwgZmV0Y2hPcHRzLCBwYXJlbnQpO1xyXG4gICAgY29uc3QgY29udGVudFR5cGUgPSByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xyXG4gICAgaWYgKGpzQ29udGVudFR5cGUudGVzdChjb250ZW50VHlwZSkpXHJcbiAgICAgIHJldHVybiB7IHI6IHJlcy51cmwsIHM6IGF3YWl0IHJlcy50ZXh0KCksIHQ6ICdqcycgfTtcclxuICAgIGVsc2UgaWYgKHdhc21Db250ZW50VHlwZS50ZXN0KGNvbnRlbnRUeXBlKSkge1xyXG4gICAgICBjb25zdCBtb2R1bGUgPSBpbXBvcnRTaGltLl93W3VybF0gPSBhd2FpdCBXZWJBc3NlbWJseS5jb21waWxlU3RyZWFtaW5nKHJlcyk7XHJcbiAgICAgIGxldCBzID0gJycsIGkgPSAwLCBpbXBvcnRPYmogPSAnJztcclxuICAgICAgZm9yIChjb25zdCBpbXB0IG9mIFdlYkFzc2VtYmx5Lk1vZHVsZS5pbXBvcnRzKG1vZHVsZSkpIHtcclxuICAgICAgICBzICs9IGBpbXBvcnQgKiBhcyBpbXB0JHtpfSBmcm9tICcke2ltcHQubW9kdWxlfSc7XFxuYDtcclxuICAgICAgICBpbXBvcnRPYmogKz0gYCcke2ltcHQubW9kdWxlfSc6aW1wdCR7aSsrfSxgO1xyXG4gICAgICB9XHJcbiAgICAgIGkgPSAwO1xyXG4gICAgICBzICs9IGBjb25zdCBpbnN0YW5jZSA9IGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGltcG9ydFNoaW0uX3dbJyR7dXJsfSddLCB7JHtpbXBvcnRPYmp9fSk7XFxuYDtcclxuICAgICAgZm9yIChjb25zdCBleHB0IG9mIFdlYkFzc2VtYmx5Lk1vZHVsZS5leHBvcnRzKG1vZHVsZSkpIHtcclxuICAgICAgICBzICs9IGBleHBvcnQgY29uc3QgJHtleHB0Lm5hbWV9ID0gaW5zdGFuY2UuZXhwb3J0c1snJHtleHB0Lm5hbWV9J107XFxuYDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyByOiByZXMudXJsLCBzLCB0OiAnd2FzbScgfTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGpzb25Db250ZW50VHlwZS50ZXN0KGNvbnRlbnRUeXBlKSlcclxuICAgICAgcmV0dXJuIHsgcjogcmVzLnVybCwgczogYGV4cG9ydCBkZWZhdWx0ICR7YXdhaXQgcmVzLnRleHQoKX1gLCB0OiAnanNvbicgfTtcclxuICAgIGVsc2UgaWYgKGNzc0NvbnRlbnRUeXBlLnRlc3QoY29udGVudFR5cGUpKSB7XHJcbiAgICAgIHJldHVybiB7IHI6IHJlcy51cmwsIHM6IGB2YXIgcz1uZXcgQ1NTU3R5bGVTaGVldCgpO3MucmVwbGFjZVN5bmMoJHtcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSgoYXdhaXQgcmVzLnRleHQoKSkucmVwbGFjZShjc3NVcmxSZWdFeCwgKF9tYXRjaCwgcXVvdGVzID0gJycsIHJlbFVybDEsIHJlbFVybDIpID0+IGB1cmwoJHtxdW90ZXN9JHtyZXNvbHZlVXJsKHJlbFVybDEgfHwgcmVsVXJsMiwgdXJsKX0ke3F1b3Rlc30pYCkpXHJcbiAgICAgIH0pO2V4cG9ydCBkZWZhdWx0IHM7YCwgdDogJ2NzcycgfTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgRXJyb3IoYFVuc3VwcG9ydGVkIENvbnRlbnQtVHlwZSBcIiR7Y29udGVudFR5cGV9XCIgbG9hZGluZyAke3VybH0ke2Zyb21QYXJlbnQocGFyZW50KX0uIE1vZHVsZXMgbXVzdCBiZSBzZXJ2ZWQgd2l0aCBhIHZhbGlkIE1JTUUgdHlwZSBsaWtlIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQuYCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBnZXRPckNyZWF0ZUxvYWQgKHVybCwgZmV0Y2hPcHRzLCBwYXJlbnQsIHNvdXJjZSkge1xyXG4gICAgbGV0IGxvYWQgPSByZWdpc3RyeVt1cmxdO1xyXG4gICAgaWYgKGxvYWQgJiYgIXNvdXJjZSlcclxuICAgICAgcmV0dXJuIGxvYWQ7XHJcblxyXG4gICAgbG9hZCA9IHtcclxuICAgICAgLy8gdXJsXHJcbiAgICAgIHU6IHVybCxcclxuICAgICAgLy8gcmVzcG9uc2UgdXJsXHJcbiAgICAgIHI6IHNvdXJjZSA/IHVybCA6IHVuZGVmaW5lZCxcclxuICAgICAgLy8gZmV0Y2hQcm9taXNlXHJcbiAgICAgIGY6IHVuZGVmaW5lZCxcclxuICAgICAgLy8gc291cmNlXHJcbiAgICAgIFM6IHVuZGVmaW5lZCxcclxuICAgICAgLy8gbGlua1Byb21pc2VcclxuICAgICAgTDogdW5kZWZpbmVkLFxyXG4gICAgICAvLyBhbmFseXNpc1xyXG4gICAgICBhOiB1bmRlZmluZWQsXHJcbiAgICAgIC8vIGRlcHNcclxuICAgICAgZDogdW5kZWZpbmVkLFxyXG4gICAgICAvLyBibG9iVXJsXHJcbiAgICAgIGI6IHVuZGVmaW5lZCxcclxuICAgICAgLy8gc2hlbGxVcmxcclxuICAgICAgczogdW5kZWZpbmVkLFxyXG4gICAgICAvLyBuZWVkc1NoaW1cclxuICAgICAgbjogZmFsc2UsXHJcbiAgICAgIC8vIHR5cGVcclxuICAgICAgdDogbnVsbCxcclxuICAgICAgLy8gbWV0YVxyXG4gICAgICBtOiBudWxsXHJcbiAgICB9O1xyXG4gICAgaWYgKHJlZ2lzdHJ5W3VybF0pIHtcclxuICAgICAgbGV0IGkgPSAwO1xyXG4gICAgICB3aGlsZSAocmVnaXN0cnlbbG9hZC51ICsgKytpXSk7XHJcbiAgICAgIGxvYWQudSArPSBpO1xyXG4gICAgfVxyXG4gICAgcmVnaXN0cnlbbG9hZC51XSA9IGxvYWQ7XHJcblxyXG4gICAgbG9hZC5mID0gKGFzeW5jICgpID0+IHtcclxuICAgICAgaWYgKCFzb3VyY2UpIHtcclxuICAgICAgICAvLyBwcmVsb2FkIGZldGNoIG9wdGlvbnMgb3ZlcnJpZGUgZmV0Y2ggb3B0aW9ucyAocmFjZSlcclxuICAgICAgICBsZXQgdDtcclxuICAgICAgICAoeyByOiBsb2FkLnIsIHM6IHNvdXJjZSwgdCB9ID0gYXdhaXQgKGZldGNoQ2FjaGVbdXJsXSB8fCBmZXRjaE1vZHVsZSh1cmwsIGZldGNoT3B0cywgcGFyZW50KSkpO1xyXG4gICAgICAgIGlmICh0ICYmICFzaGltTW9kZSkge1xyXG4gICAgICAgICAgaWYgKHQgPT09ICdjc3MnICYmICFjc3NNb2R1bGVzRW5hYmxlZCB8fCB0ID09PSAnanNvbicgJiYgIWpzb25Nb2R1bGVzRW5hYmxlZCB8fCB0ID09PSAnd2FzbScgJiYgIXdhc21Nb2R1bGVzRW5hYmxlZClcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYCR7dH0tbW9kdWxlcyByZXF1aXJlIDxzY3JpcHQgdHlwZT1cImVzbXMtb3B0aW9uc1wiPnsgXCJwb2x5ZmlsbEVuYWJsZVwiOiBbXCIke3R9LW1vZHVsZXNcIl0gfTwkeycnfS9zY3JpcHQ+YCk7XHJcbiAgICAgICAgICBpZiAodCA9PT0gJ2NzcycgJiYgIXN1cHBvcnRzQ3NzQXNzZXJ0aW9ucyB8fCB0ID09PSAnanNvbicgJiYgIXN1cHBvcnRzSnNvbkFzc2VydGlvbnMgfHwgdCA9PT0gJ3dhc20nICYmICFzdXBwb3J0c1dhc21Nb2R1bGVzKVxyXG4gICAgICAgICAgICBsb2FkLm4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxvYWQuYSA9IHBhcnNlKHNvdXJjZSwgbG9hZC51KTtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIHRocm93RXJyb3IoZSk7XHJcbiAgICAgICAgbG9hZC5hID0gW1tdLCBbXSwgZmFsc2VdO1xyXG4gICAgICB9XHJcbiAgICAgIGxvYWQuUyA9IHNvdXJjZTtcclxuICAgICAgcmV0dXJuIGxvYWQ7XHJcbiAgICB9KSgpO1xyXG5cclxuICAgIGxvYWQuTCA9IGxvYWQuZi50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgbGV0IGNoaWxkRmV0Y2hPcHRzID0gZmV0Y2hPcHRzO1xyXG4gICAgICBsb2FkLmQgPSAoYXdhaXQgUHJvbWlzZS5hbGwobG9hZC5hWzBdLm1hcChhc3luYyAoeyBuLCBkIH0pID0+IHtcclxuICAgICAgICBpZiAoZCA+PSAwICYmICFzdXBwb3J0c0R5bmFtaWNJbXBvcnQgfHwgZCA9PT0gLTIgJiYgIXN1cHBvcnRzSW1wb3J0TWV0YSlcclxuICAgICAgICAgIGxvYWQubiA9IHRydWU7XHJcbiAgICAgICAgaWYgKGQgIT09IC0xIHx8ICFuKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgeyByLCBiIH0gPSBhd2FpdCByZXNvbHZlKG4sIGxvYWQuciB8fCBsb2FkLnUpO1xyXG4gICAgICAgIGlmIChiICYmICghc3VwcG9ydHNJbXBvcnRNYXBzIHx8IGltcG9ydE1hcFNyY09yTGF6eSkpXHJcbiAgICAgICAgICBsb2FkLm4gPSB0cnVlO1xyXG4gICAgICAgIGlmIChkICE9PSAtMSkgcmV0dXJuO1xyXG4gICAgICAgIGlmIChza2lwICYmIHNraXAocikpIHJldHVybiB7IGI6IHIgfTtcclxuICAgICAgICBpZiAoY2hpbGRGZXRjaE9wdHMuaW50ZWdyaXR5KVxyXG4gICAgICAgICAgY2hpbGRGZXRjaE9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCBjaGlsZEZldGNoT3B0cywgeyBpbnRlZ3JpdHk6IHVuZGVmaW5lZCB9KTtcclxuICAgICAgICByZXR1cm4gZ2V0T3JDcmVhdGVMb2FkKHIsIGNoaWxkRmV0Y2hPcHRzLCBsb2FkLnIpLmY7XHJcbiAgICAgIH0pKSkuZmlsdGVyKGwgPT4gbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbG9hZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb2Nlc3NTY3JpcHRzQW5kUHJlbG9hZHMgKG1hcHNPbmx5ID0gZmFsc2UpIHtcclxuICAgIGlmICghbWFwc09ubHkpXHJcbiAgICAgIGZvciAoY29uc3QgbGluayBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNoaW1Nb2RlID8gJ2xpbmtbcmVsPW1vZHVsZXByZWxvYWQtc2hpbV0nIDogJ2xpbmtbcmVsPW1vZHVsZXByZWxvYWRdJykpXHJcbiAgICAgICAgcHJvY2Vzc1ByZWxvYWQobGluayk7XHJcbiAgICBmb3IgKGNvbnN0IHNjcmlwdCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNoaW1Nb2RlID8gJ3NjcmlwdFt0eXBlPWltcG9ydG1hcC1zaGltXScgOiAnc2NyaXB0W3R5cGU9aW1wb3J0bWFwXScpKVxyXG4gICAgICBwcm9jZXNzSW1wb3J0TWFwKHNjcmlwdCk7XHJcbiAgICBpZiAoIW1hcHNPbmx5KVxyXG4gICAgICBmb3IgKGNvbnN0IHNjcmlwdCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNoaW1Nb2RlID8gJ3NjcmlwdFt0eXBlPW1vZHVsZS1zaGltXScgOiAnc2NyaXB0W3R5cGU9bW9kdWxlXScpKVxyXG4gICAgICAgIHByb2Nlc3NTY3JpcHQoc2NyaXB0KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGdldEZldGNoT3B0cyAoc2NyaXB0KSB7XHJcbiAgICBjb25zdCBmZXRjaE9wdHMgPSB7fTtcclxuICAgIGlmIChzY3JpcHQuaW50ZWdyaXR5KVxyXG4gICAgICBmZXRjaE9wdHMuaW50ZWdyaXR5ID0gc2NyaXB0LmludGVncml0eTtcclxuICAgIGlmIChzY3JpcHQucmVmZXJyZXJQb2xpY3kpXHJcbiAgICAgIGZldGNoT3B0cy5yZWZlcnJlclBvbGljeSA9IHNjcmlwdC5yZWZlcnJlclBvbGljeTtcclxuICAgIGlmIChzY3JpcHQuZmV0Y2hQcmlvcml0eSlcclxuICAgICAgZmV0Y2hPcHRzLnByaW9yaXR5ID0gc2NyaXB0LmZldGNoUHJpb3JpdHk7XHJcbiAgICBpZiAoc2NyaXB0LmNyb3NzT3JpZ2luID09PSAndXNlLWNyZWRlbnRpYWxzJylcclxuICAgICAgZmV0Y2hPcHRzLmNyZWRlbnRpYWxzID0gJ2luY2x1ZGUnO1xyXG4gICAgZWxzZSBpZiAoc2NyaXB0LmNyb3NzT3JpZ2luID09PSAnYW5vbnltb3VzJylcclxuICAgICAgZmV0Y2hPcHRzLmNyZWRlbnRpYWxzID0gJ29taXQnO1xyXG4gICAgZWxzZVxyXG4gICAgICBmZXRjaE9wdHMuY3JlZGVudGlhbHMgPSAnc2FtZS1vcmlnaW4nO1xyXG4gICAgcmV0dXJuIGZldGNoT3B0cztcclxuICB9XHJcblxyXG4gIGxldCBsYXN0U3RhdGljTG9hZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcclxuXHJcbiAgbGV0IGRvbUNvbnRlbnRMb2FkZWRDbnQgPSAxO1xyXG4gIGZ1bmN0aW9uIGRvbUNvbnRlbnRMb2FkZWRDaGVjayAoKSB7XHJcbiAgICBpZiAoLS1kb21Db250ZW50TG9hZGVkQ250ID09PSAwICYmICFub0xvYWRFdmVudFJldHJpZ2dlcnMgJiYgKHNoaW1Nb2RlIHx8ICFiYXNlbGluZVBhc3N0aHJvdWdoKSkge1xyXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnRE9NQ29udGVudExvYWRlZCcpKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gdGhpcyBzaG91bGQgYWx3YXlzIHRyaWdnZXIgYmVjYXVzZSB3ZSBhc3N1bWUgZXMtbW9kdWxlLXNoaW1zIGlzIGl0c2VsZiBhIGRvbWNvbnRlbnRsb2FkZWQgcmVxdWlyZW1lbnRcclxuICBpZiAoaGFzRG9jdW1lbnQpIHtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgIGF3YWl0IGluaXRQcm9taXNlO1xyXG4gICAgICBkb21Db250ZW50TG9hZGVkQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbGV0IHJlYWR5U3RhdGVDb21wbGV0ZUNudCA9IDE7XHJcbiAgZnVuY3Rpb24gcmVhZHlTdGF0ZUNvbXBsZXRlQ2hlY2sgKCkge1xyXG4gICAgaWYgKC0tcmVhZHlTdGF0ZUNvbXBsZXRlQ250ID09PSAwICYmICFub0xvYWRFdmVudFJldHJpZ2dlcnMgJiYgKHNoaW1Nb2RlIHx8ICFiYXNlbGluZVBhc3N0aHJvdWdoKSkge1xyXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVhZHlzdGF0ZWNoYW5nZScpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGhhc05leHQgPSBzY3JpcHQgPT4gc2NyaXB0Lm5leHRTaWJsaW5nIHx8IHNjcmlwdC5wYXJlbnROb2RlICYmIGhhc05leHQoc2NyaXB0LnBhcmVudE5vZGUpO1xyXG4gIGNvbnN0IGVwQ2hlY2sgPSAoc2NyaXB0LCByZWFkeSkgPT4gc2NyaXB0LmVwIHx8ICFyZWFkeSAmJiAoIXNjcmlwdC5zcmMgJiYgIXNjcmlwdC5pbm5lckhUTUwgfHwgIWhhc05leHQoc2NyaXB0KSkgfHwgc2NyaXB0LmdldEF0dHJpYnV0ZSgnbm9zaGltJykgIT09IG51bGwgfHwgIShzY3JpcHQuZXAgPSB0cnVlKTtcclxuXHJcbiAgZnVuY3Rpb24gcHJvY2Vzc0ltcG9ydE1hcCAoc2NyaXB0LCByZWFkeSA9IHJlYWR5U3RhdGVDb21wbGV0ZUNudCA+IDApIHtcclxuICAgIGlmIChlcENoZWNrKHNjcmlwdCwgcmVhZHkpKSByZXR1cm47XHJcbiAgICAvLyB3ZSBkb250IGN1cnJlbnRseSBzdXBwb3J0IG11bHRpcGxlLCBleHRlcm5hbCBvciBkeW5hbWljIGltcG9ydHMgbWFwcyBpbiBwb2x5ZmlsbCBtb2RlIHRvIG1hdGNoIG5hdGl2ZVxyXG4gICAgaWYgKHNjcmlwdC5zcmMpIHtcclxuICAgICAgaWYgKCFzaGltTW9kZSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIHNldEltcG9ydE1hcFNyY09yTGF6eSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGFjY2VwdGluZ0ltcG9ydE1hcHMpIHtcclxuICAgICAgaW1wb3J0TWFwUHJvbWlzZSA9IGltcG9ydE1hcFByb21pc2VcclxuICAgICAgICAudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBpbXBvcnRNYXAgPSByZXNvbHZlQW5kQ29tcG9zZUltcG9ydE1hcChzY3JpcHQuc3JjID8gYXdhaXQgKGF3YWl0IGRvRmV0Y2goc2NyaXB0LnNyYywgZ2V0RmV0Y2hPcHRzKHNjcmlwdCkpKS5qc29uKCkgOiBKU09OLnBhcnNlKHNjcmlwdC5pbm5lckhUTUwpLCBzY3JpcHQuc3JjIHx8IGJhc2VVcmwsIGltcG9ydE1hcCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpXHJcbiAgICAgICAgICAgIGUgPSBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBpbXBvcnQgbWFwICR7ZS5tZXNzYWdlfSBpbjogJHtzY3JpcHQuc3JjIHx8IHNjcmlwdC5pbm5lckhUTUx9YCk7XHJcbiAgICAgICAgICB0aHJvd0Vycm9yKGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBpZiAoIXNoaW1Nb2RlKVxyXG4gICAgICAgIGFjY2VwdGluZ0ltcG9ydE1hcHMgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb2Nlc3NTY3JpcHQgKHNjcmlwdCwgcmVhZHkgPSByZWFkeVN0YXRlQ29tcGxldGVDbnQgPiAwKSB7XHJcbiAgICBpZiAoZXBDaGVjayhzY3JpcHQsIHJlYWR5KSkgcmV0dXJuO1xyXG4gICAgLy8gZG9lcyB0aGlzIGxvYWQgYmxvY2sgcmVhZHlzdGF0ZSBjb21wbGV0ZVxyXG4gICAgY29uc3QgaXNCbG9ja2luZ1JlYWR5U2NyaXB0ID0gc2NyaXB0LmdldEF0dHJpYnV0ZSgnYXN5bmMnKSA9PT0gbnVsbCAmJiByZWFkeVN0YXRlQ29tcGxldGVDbnQgPiAwO1xyXG4gICAgLy8gZG9lcyB0aGlzIGxvYWQgYmxvY2sgRE9NQ29udGVudExvYWRlZFxyXG4gICAgY29uc3QgaXNEb21Db250ZW50TG9hZGVkU2NyaXB0ID0gZG9tQ29udGVudExvYWRlZENudCA+IDA7XHJcbiAgICBpZiAoaXNCbG9ja2luZ1JlYWR5U2NyaXB0KSByZWFkeVN0YXRlQ29tcGxldGVDbnQrKztcclxuICAgIGlmIChpc0RvbUNvbnRlbnRMb2FkZWRTY3JpcHQpIGRvbUNvbnRlbnRMb2FkZWRDbnQrKztcclxuICAgIGNvbnN0IGxvYWRQcm9taXNlID0gdG9wTGV2ZWxMb2FkKHNjcmlwdC5zcmMgfHwgYmFzZVVybCwgZ2V0RmV0Y2hPcHRzKHNjcmlwdCksICFzY3JpcHQuc3JjICYmIHNjcmlwdC5pbm5lckhUTUwsICFzaGltTW9kZSwgaXNCbG9ja2luZ1JlYWR5U2NyaXB0ICYmIGxhc3RTdGF0aWNMb2FkUHJvbWlzZSlcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIC8vIGlmIHRoZSB0eXBlIG9mIHRoZSBzY3JpcHQgdGFnIFwibW9kdWxlLXNoaW1cIiwgYnJvd3NlciBkb2VzIG5vdCBkaXNwYXRjaCBhIFwibG9hZFwiIGV2ZW50XHJcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ndXliZWRmb3JkL2VzLW1vZHVsZS1zaGltcy9pc3N1ZXMvMzQ2XHJcbiAgICAgICAgaWYgKHNoaW1Nb2RlKSB7XHJcbiAgICAgICAgICBzY3JpcHQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2xvYWQnKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2godGhyb3dFcnJvcik7XHJcbiAgICBpZiAoaXNCbG9ja2luZ1JlYWR5U2NyaXB0KVxyXG4gICAgICBsYXN0U3RhdGljTG9hZFByb21pc2UgPSBsb2FkUHJvbWlzZS50aGVuKHJlYWR5U3RhdGVDb21wbGV0ZUNoZWNrKTtcclxuICAgIGlmIChpc0RvbUNvbnRlbnRMb2FkZWRTY3JpcHQpXHJcbiAgICAgIGxvYWRQcm9taXNlLnRoZW4oZG9tQ29udGVudExvYWRlZENoZWNrKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGZldGNoQ2FjaGUgPSB7fTtcclxuICBmdW5jdGlvbiBwcm9jZXNzUHJlbG9hZCAobGluaykge1xyXG4gICAgaWYgKGxpbmsuZXApIHJldHVybjtcclxuICAgIGxpbmsuZXAgPSB0cnVlO1xyXG4gICAgaWYgKGZldGNoQ2FjaGVbbGluay5ocmVmXSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgZmV0Y2hDYWNoZVtsaW5rLmhyZWZdID0gZmV0Y2hNb2R1bGUobGluay5ocmVmLCBnZXRGZXRjaE9wdHMobGluaykpO1xyXG4gIH1cblxufSkoKTtcbiIsImltcG9ydCAnZXMtbW9kdWxlLXNoaW1zJztcbi8qKlxuICogRHluYW1pY2FsbHkgbG9hZCB0aGUgaW5mb3ZpZXcgbW9kdWxlLCBleGVjdXRlIGByZW5kZXJJbmZvdmlld2Agd2l0aCB0aGUgcHJvdmlkZWQgYGFyZ3NgLFxuICogYW5kIHBhc3MgaXRzIHJldHVybiB2YWx1ZSB0byBgbmV4dGAuIFNlZSBgUkVBRE1FLm1kYCBmb3Igd2h5IHRoaXMgaXMgbmVlZGVkLlxuICpcbiAqIEBwYXJhbSBpbXBvcnRzIGlzIHRoZSBgaW1wb3J0c2Agc2VjdGlvbiBvZiBhbiBbYGltcG9ydG1hcGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ltcG9ydC1tYXBzKS5cbiAqIEl0IG11c3QgY29udGFpbiBVUkxzIGZvciBgQGxlYW5wcm92ZXIvaW5mb3ZpZXdgLCBgcmVhY3RgLCBgcmVhY3QvanN4LXJ1bnRpbWVgLCBgcmVhY3QtZG9tYCxcbiAqIEl0IG1heSBpbmNsdWRlIGFkZGl0aW9uYWwgVVJMcy4gVGhlIGxpc3RlZCBsaWJyYXJpZXMgYmVjb21lIGBpbXBvcnRgYWJsZVxuICogZnJvbSB1c2VyIHdpZGdldHMuIE5vdGUgdGhhdCBgZGlzdC9gIGFscmVhZHkgaW5jbHVkZXMgdGhlc2UgZmlsZXMsIHNvIHRoZSBmb2xsb3dpbmcgd29ya3M6XG4gKiBgYGBqc1xuICoge1xuICogJ0BsZWFucHJvdmVyL2luZm92aWV3JzogJ2h0dHBzOi8vdW5wa2cuY29tL0BsZWFucHJvdmVyL2luZm92aWV3L2Rpc3QvaW5kZXgucHJvZHVjdGlvbi5taW4uanMnLFxuICogJ3JlYWN0JzogJ2h0dHBzOi8vdW5wa2cuY29tL0BsZWFucHJvdmVyL2luZm92aWV3L2Rpc3QvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnLFxuICogJ3JlYWN0L2pzeC1ydW50aW1lJzogJ2h0dHBzOi8vdW5wa2cuY29tL0BsZWFucHJvdmVyL2luZm92aWV3L2Rpc3QvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnLFxuICogJ3JlYWN0LWRvbSc6ICdodHRwczovL3VucGtnLmNvbS9AbGVhbnByb3Zlci9pbmZvdmlldy9kaXN0L3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycsXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZW5kZXJJbmZvdmlldyhpbXBvcnRzLCBhcmdzLCBuZXh0KSB7XG4gICAgaW1wb3J0U2hpbS5hZGRJbXBvcnRNYXAoeyBpbXBvcnRzIH0pO1xuICAgIGltcG9ydFNoaW0oJ0BsZWFucHJvdmVyL2luZm92aWV3JylcbiAgICAgICAgLnRoZW4oKG1vZCkgPT4gbmV4dChtb2QucmVuZGVySW5mb3ZpZXcoLi4uYXJncykpKVxuICAgICAgICAuY2F0Y2goZXggPT4gY29uc29sZS5lcnJvcihgRXJyb3IgaW1wb3J0aW5nICdAbGVhbnByb3Zlci9pbmZvdmlldyc6ICR7SlNPTi5zdHJpbmdpZnkoZXgpfWApKTtcbn1cbiJdLCJuYW1lcyI6WyJnbG9iYWwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLENBQUMsWUFBWTtBQUNiO0FBQ0EsRUFBRSxNQUFNLFNBQVMsR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDbEQsRUFBRSxNQUFNLFdBQVcsR0FBRyxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUM7QUFDdEQ7QUFDQSxFQUFFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3hCO0FBQ0EsRUFBRSxNQUFNLGFBQWEsR0FBRyxXQUFXLEdBQUcsUUFBUSxDQUFDLGFB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RUFBRTtBQUN0RCxJQUFJLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkUsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3BHLElBQUksSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNuRDtBQUNBLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7QUFDaEQsTUFBTSxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ3JFLEtBQUs7QUFDTDtBQUNBLFNBQVMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztBQUMxSSxRQUFRLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxN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QUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyR0FBMkcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sUUFBUSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxRQUFRLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUNBLGNBQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN3psQjtBQUNBLEVBQUUsZUFBZSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRTtBQUMxQyxJQUFJLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsSUFBSSxLQUFLLENB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LENBQUM7QUFDN0ssT0FBTyxJQUFJLENBQUMsTUFBTTtBQUNsQjtBQUNBO0FBQ0EsUUFBUSxJQUFJLFFBQVEsRUFBRTtBQUN0QixVQUFVLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNsRCxTQUFTO0FBQ1QsT0FBTyxDQUFDO0FBQ1IsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDekIsSUFBSSxJQUFJLHFCQUFxQjtBQUM3QixNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUN4RSxJQUFJLElBQUksd0JBQXdCO0FBQ2hDLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQzlDLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLEVBQUUsU0FBUyxjQUFjLEVBQUUsSUFBSSxFQUFFO0FBQ2pDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU87QUFDeEIsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztBQUNuQixJQUFJLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDN0IsTUFBTSxPQUFPO0FBQ2IsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLEdBQUc7QUFDSDtBQUNBLENBQUMsR0FBRzs7QUM1OEJKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3hELElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDekMsSUFBSSxVQUFVLENBQUMsc0JBQXNCLENBQUM7QUFDdEMsU0FBUyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pELFNBQVMsS0FBSyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsd0NBQXdDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JHOzs7OyIsInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswXX0=